# Tightly help centre > The knowledge base behind Ask Tightly: one article per concept, page, act and refusal of the platform. --- # A colourway the style is not offered in Source: https://docs.tightly.io/help/commitments/a-colourway-the-style-is-not-offered-in Reviewed: 2026-09-07 ## The sentence Where a colour split names a colourway the style does not come in: > This style is not offered in {colourways}, so no part of its buy can go there. The colourways it is offered in are: {colourways}. Where the style has no colourways at all: > This style is not offered in colourways, so there is nothing to divide its buy between. Where it comes in exactly one: > This style is offered in one colourway, so the whole buy is that colourway. There is no split to record. Where the shares do not add up to the whole buy: > A colour split must add up to the whole buy: 10000 basis points, which is 100%. This one adds up to {total} ({percent}%). It has not been saved and has not been adjusted: rounding a split to fit would store a division you did not choose. Colourways you leave out keep no reading at all, and one you want to buy none of is entered as 0. ## What it means A colour split divides one style's worked depth between the colourways it is offered in, keyed on your own names for them, in basis points: ten thousand is the whole buy. A share on a colourway the style does not carry would be a share of the buy assigned to nothing, so it is refused before anything is stored, with the offending names listed and the colourways the style does come in beside them; Tightly never lands the share on a colourway that merely looks plausible. A style with no colourways has no axis to divide along, and one with a single colourway is already wholly that colourway, so in both cases there is nothing to record and the sentence says so. The distribution rule is the one [a size split](../commitments/a-size-split-that-does-not-total) follows: a split that does not total the whole buy is refused with what it actually totalled and is never rounded to fit. A colourway at zero is a cut, a colourway left out has no reading, and the two are stored apart. [Colour depths](../commitments/act-set-colour-depths), which set depth and split together in one act, refuse a colourway the style is not offered in the same way, in their own words: > This style is not offered in {colourways}, so no units can be bought there. The colourways it is offered in are: {colourways}. The refusal is the server's, printed on [Buy plan](../commitments/the-desk) where you typed, and the depth and split on record are untouched. It is not a failed read; the corrected split lands on the next press. ## What to do next Use the colourway names the sentence lists, exactly as they are written there; they are the names on the product. Make the shares total the whole buy, with 0 for a colourway you buy none of and no entry for one you leave unread. Where the style has one colourway or none, there is no split to record and the whole depth already stands. Ask Tightly can set the split with the same act and meets the same words. ## Who to ask Ask Tightly on the desk answers from this article and from [Set a colour split](../commitments/act-set-a-colour-split). --- # A size split that does not total Source: https://docs.tightly.io/help/commitments/a-size-split-that-does-not-total Reviewed: 2026-09-07 ## The sentence Where the shares of a size split do not add up to the whole buy: > A size curve must add up to the whole buy: 10000 basis points, which is 100%. This one adds up to {total} ({percent}%). It has not been saved and has not been adjusted: rounding a curve to fit would store a split you did not choose. Sizes you leave out keep no reading at all, and a size you want to buy none of is entered as 0. Where the split names a size the style does not come in: > This style is not offered in {sizes}, so no part of its buy can go there. The sizes it is offered in are: {sizes}. Where the style has no sizes at all: > This style is not offered in sizes, so there is no size run to spread its buy across. ## What it means A size split spreads one style's worked depth across the sizes it is offered in, in basis points: ten thousand is the whole buy. Tightly checks the split as a distribution before it stores anything. A split that totals more or less than the whole is refused with what it actually totalled, and it is never normalised: rounding thirty, thirty and thirty to fit would store a curve you did not type, and the next planner to read it could not tell. Refusing puts the rounding where the decision belongs, with the person making it. Two things that look alike mean different things, and both are kept. A size at zero is a cut: buy none of that size. A size left out has no reading. A split that is all zeros totals nothing and is refused; buying none of a style is a depth of zero, a different act on the same row. A share on a size the style is not offered in is a share of the buy assigned to nothing, so it is refused with the sizes named and the sizes the style does come in listed beside them. A style with no size run has nothing to spread across, and Tightly will not invent a run to hold a curve. The refusal is the server's, printed on [Buy plan](../commitments/the-desk) against the style where you typed, and the depth on record is untouched. It is not a failed read, and it is not a locked style: the same row takes the corrected split once its current record has been reviewed. If another person has changed the saved split since you opened it, saving is refused separately. Reload the current decision, compare it with your intended shares, and review the correction before saving again. A total of 100% does not override that conflict. ## What to do next Open the product's **Buy** tab. If **Initial store plan** is shown, find **Buy quantity & size split**, then open **Size mix & packs**. Enter a percentage for each offered size, using 0 where you want none, and make the total 100%. **Save size curve** stays unavailable while the total is invalid. Closing the size editor or changing product tabs keeps your draft. Review the corrected split and save it. Where the refusal lists the sizes the style is offered in, use those labels exactly. Ask Tightly can set the split with the same checks; an omitted size remains unknown, not zero. ## Who to ask Ask Tightly on the desk answers from this article and from [Set a size split](../commitments/act-set-a-size-split). --- # Decline a scenario Source: https://docs.tightly.io/help/commitments/act-decline-a-scenario Reviewed: 2026-09-07 ## What it writes Decline a scenario records that a scenario was not taken, with a stated reason. The row stays on the ledger with its diff and any recorded prediction, because a declined scenario is the counterfactual [Hindsight](../commitments/hindsight) measures the chosen buy against. It is the one write on this surface that can destroy nothing: there is no delete route, and declining is how a scenario ends. Nothing is spent and none of the five declared numbers moves. ## Who may press it On a plan that includes Commitments, a seat with the Commitments editor grant may decline a draft, and an admin resolves to approver, which includes editor. A chosen scenario or one awaiting approval takes the approver grant, so an editor cannot undo what an approver backed. A scenario sent for review is declined by the person who proposed it (which withdraws it) or by an approver. If proposal review has been switched off for the workspace, any seat that can write may decline any of them. The act's home is the scenario row on [Buy plan](../commitments/the-desk), with the scenario being worked from loaded: press Review decision, type the reason in the decision note, open Other scenario actions and press Decline. The button stays closed until a reason is typed. Ask Tightly may propose it as `decline_commitment_scenario`; pressing the chip asks Ask Tightly to restate the act, your yes is the confirm, and the write then runs under your own seat. Over MCP nothing here writes: a connected agent reads the commitment, and the act stays a person's press. ## What you see The receipt under the row: > “{name}” is declined and kept on the ledger; the plan of record is unchanged. In the [Scenarios](../commitments/scenarios) table the row reads Not taken, with the reason on its trail. Declined rows are never hidden from the table. The working copy on the desk is untouched. ## What to do There is no way back and none is needed: a declined scenario is a record, not a loss. To back a different view, [Record a scenario](../commitments/act-record-a-scenario) and [Promote a scenario](../commitments/act-promote-a-scenario). Declining a backed scenario takes an approver, so an editor cannot decline one an admin promoted. Nothing is armed by it, and the row survives with its diff and prediction. ## Refusals you may read Before the press, the button's hover says why it is closed: > Nothing is loaded to decline. > This scenario is already declined. On the server, a scenario that does not exist is refused as not found, and one already declined is refused by name, because declining twice would put a second event in the trail for one decision. A scenario that changed state while you read it asks you to refresh and retry. A decline with no reason is refused, because the reason is what makes the row a counterfactual rather than a discarded draft. A discount scenario is not declined here; it is rejected or withdrawn through its markdown decision. --- # Set a colour split Source: https://docs.tightly.io/help/commitments/act-set-a-colour-split Reviewed: 2026-09-07 ## What it writes Set a colour split records how one style's buy divides across its colourways, keyed on your own colourway names: a share per colourway in basis points, summing to ten thousand, on one commitment. It writes the division and nothing else: no units, no Bench line, no order, none of the five declared numbers. A colourway the style is not offered in is refused, never a share landing somewhere plausible. A hand-back clears the split. ## Who may press it A seat that can write, on a plan that includes Commitments. The colour options on [Buy plan](../commitments/the-desk) are the act's home: the Options tab of a row's drawer, and the same block in the Buy tab of the style's product panel. Type a share per colourway and press Record this split, or press Hand the split back; Record this split stays closed while every share is zero. Ask Tightly may propose it as `set_worked_colour_curve`, and offers it only to a seat that also holds editing on the Buy door. Pressing the chip asks Ask Tightly to restate the act, your yes is the confirm, and the write then runs under your own seat. Over MCP nothing here writes: a connected agent reads the commitment, and the act stays a person's press. ## What you see The drawer's receipt: > The colour split is recorded under your name. > The colour split is handed back; nobody has decided it. A refusal carries the server's sentence in the drawer. The server answers a split that changes nothing with: > This is already the colour split on record, so nothing was changed and nobody was restamped. ## What to do The way back is the next split, or the hand-back. To type units per colourway rather than shares, use [Set colour depths](../commitments/act-set-colour-depths), which writes the depth and the split together. A split must cover every colourway before [Add to Bench](../commitments/act-send-to-the-bench) will stage the style. The size split is its own act, [Set a size split](../commitments/act-set-a-size-split). ## Refusals you may read > Saving a colour split is not available on this account yet. Nothing was changed. > This style is not offered in colourways, so there is nothing to divide its buy between. > This style is offered in one colourway, so the whole buy is that colourway. There is no split to record. > A colour split must add up to the whole buy: 10000 basis points, which is 100%. This one adds up to {total} ({percent}%). It has not been saved and has not been adjusted: rounding a split to fit would store a division you did not choose. Colourways you leave out keep no reading at all, and one you want to buy none of is entered as 0. A share for a colourway the style is not offered in is refused by name, and the sentence lists the colourways it is offered in. A share below none or above the whole buy is refused with the colourway named. A style outside the commitment's scope is refused, because a colour split for it would mean nothing. Every colourway at zero totals nothing and is refused by the same rule: buying none of the style is a depth of zero, the depth's own act, and not a split of nothing. Handing back a style with no split says there is nothing to hand back: > This style has no colour split set, so there is nothing to hand back. Its buy is not divided between colourways. --- # Set a size split Source: https://docs.tightly.io/help/commitments/act-set-a-size-split Reviewed: 2026-09-26 ## What it writes Set a size split records how one style's buy divides across its sizes: a share per size in basis points, summing to ten thousand, on one commitment. It writes the division and nothing else: no units, no Bench line, no order, and none of the five declared numbers. A split that does not total the whole buy is refused with what it actually totalled, never normalised, so a curve nobody chose cannot be stored. Clearing the saved override removes the planner’s split; a size with no reading is not the same as one cut to zero. ## Who may press it A seat that can write, on a plan that includes Commitments. On [Buy plan](../commitments/the-desk) the split is typed as shares on the style's size cells in the grid, or in the Size curve editor in the Buy tab of the style's product panel, which also hands the split back. Ask Tightly may propose it, and offers it only to a seat that also holds editing on the Buy door. Pressing the chip asks Ask Tightly to restate the act, your yes is the confirm, and the write then runs under your own seat. Over MCP nothing here writes: a connected agent reads the commitment, and the act stays a person's press. ## How 1. On **Buy plan**, open **Actions** and set the grid's grain to **Size**. 2. Read **Split** for the style's row; a size not yet answered shows as still reading. 3. Type a share for every size the style is offered in, as a percentage of the whole buy. 4. Where the panel offers it instead, open the style's row and use the **Size curve** editor in its **Buy** tab. 5. In the product panel, press **Save size curve** to save the percentages. **Reset** discards unsaved edits; **Clear size override** removes the saved override. ::: shot grid ::: ## What you see The original quantity and unit-allocation grid become read-only after the buy locks. Use Replenishment for an additional buy. The size editor and proposed allocation grid use the same percentages. A complete curve distributes whole units while preserving the total buy. For a product with exactly one colour, the planned quantity belongs to that colour; missing splits across multiple colours remain unallocated. The saved split shows in place after a successful save. A refusal is a band that names the style and carries the server's sentence, with the total as found where the shares do not add up. The server answers a split that changes nothing with: > This is already the size curve on record, so nothing was changed and nobody was restamped. ## What to do The way back is another saved split or **Clear size override**. A split must cover every size the style is offered in before the buy can go to the Bench: [Add to Bench](../commitments/act-send-to-the-bench) skips a style whose split does not cover its run. The colour split is its own act, [Set a colour split](../commitments/act-set-a-colour-split), and the depth the split divides is [Set a worked depth](../commitments/act-set-a-worked-depth). ## Refusals you may read > Saving a size curve is not available on this account yet. Nothing was changed. > This style is not offered in sizes, so there is no size run to spread its buy across. > A size curve must add up to the whole buy: 10000 basis points, which is 100%. This one adds up to {total} ({percent}%). It has not been saved and has not been adjusted: rounding a curve to fit would store a split you did not choose. Sizes you leave out keep no reading at all, and a size you want to buy none of is entered as 0. A share for a size the style is not offered in is refused by name, and the sentence lists the sizes it is offered in, so the fix is a thing a planner can see. A share below none or above the whole buy is refused with the size named. A split that names no size at all is refused, and the sentence says to hand the split back instead. A style outside the commitment's scope is refused, because a size curve for it would mean nothing. Clearing a style that has no split says there is nothing to clear: > This style has no size curve set, so there is nothing to clear. Its buy is not split by size. --- # Set a worked depth Source: https://docs.tightly.io/help/commitments/act-set-a-worked-depth Reviewed: 2026-09-07 ## What it writes Set a worked depth records how many units of one style a person decided to buy on one commitment: one row per style, or one per declared channel leg where the depth is set channel by channel. It spends nothing, stages no Bench line, places no order, and moves none of the five declared numbers; it is a planner's input to a figure the desk derives. Zero is a real cut and is recorded as one; the same depth again changes nothing and does not restamp the author; a hand-back removes the worked depth and returns the style to the forecast's depth. A depth you set is always recorded as a person's decision, even where it matches the prefill. ## Who may press it A seat that can write, on a plan that includes Commitments. The Depth cell on [Buy plan](../commitments/the-desk) is the act's home: type in it, or clear it to hand the style back. Ask Tightly may propose it as `set_worked_depth`, and offers it only to a seat that also holds editing on the Buy door. Pressing the chip asks Ask Tightly to restate the act, your yes is the confirm, and the write then runs under your own seat. Over MCP nothing here writes: a connected agent reads the commitment, and the act stays a person's press. ## What you see The cell's own value is the receipt, and the Whose column turns with it: The forecast's where nobody has decided, Yours with your name once you have, Cut to zero with the name where the depth is none. A refusal is a band above the grid naming the style and the server's sentence, and the cell reverts to the record. A depth that changes nothing says so: > This is already the depth on record, so nothing was changed and nobody was restamped. ## What to do The way back is the next write: type another depth, or clear the cell, which hands the style back to the forecast. The size and colour splits are their own acts, [Set a size split](../commitments/act-set-a-size-split) and [Set a colour split](../commitments/act-set-a-colour-split), and [Add to Bench](../commitments/act-send-to-the-bench) is what carries a worked depth to the Bench. ## Refusals you may read > Saving a depth is not available on this account yet. Nothing was changed. > That sales channel is not one this account has, so no depth was set for it. > This style's depth is already set channel by channel, and its total is those numbers added up. Change a channel's depth, or clear them all first. > This style already carries one depth for the whole style. Clear that first, then set the depth channel by channel. A channel that is not one of the commitment's declared legs is refused, and the sentence says to declare the channel on the commitment first. A style outside the commitment's scope is refused, because a depth against it would mean nothing; re-assign the style to bring it in, then work its depth. A style your catalogue does not declare as managed by Tightly is refused by name. A channel commitment has no styles to work and refuses every depth. Clearing a depth that does not match what is on record removes nothing: > No depth matches what you asked to clear, so there is nothing to remove. Depths set at a different grain (per-channel vs style-wide) stand untouched. Release account allocations before reducing or clearing a channel total below the units already assigned to accounts. A seat scoped to an account changes its allocation, not the whole channel. --- # Set colour depths Source: https://docs.tightly.io/help/commitments/act-set-colour-depths Reviewed: 2026-09-07 ## What it writes Set colour depths records units per colourway for one style on one commitment, and writes the style's depth and its colour split in one transaction, so a half-written pair cannot exist: a failure anywhere leaves neither changed. The depth is the sum of the units typed; the split is each colourway's share of it, stored to the nearest whole basis point, with the typed units kept beside it so nothing typed is lost. A colourway at zero is cut; a colourway left out has no reading. It spends nothing, stages no Bench line, places no order, and moves none of the five declared numbers. The same units again change nothing and do not restamp the author. ## Who may press it A seat that can write, on a plan that includes Commitments. The colour options on [Buy plan](../commitments/the-desk) are the act's home: type units against colourways in the Options tab of a row's drawer and press Record these units, or record the colour allocation from the style's product panel. Ask Tightly may propose it as `set_colour_depths`, and offers it only to a seat that also holds editing on the Buy door. Pressing the chip asks Ask Tightly to restate the act, your yes is the confirm, and the write then runs under your own seat. Over MCP nothing here writes: a connected agent reads the commitment, and the act stays a person's press. ## What you see Original colour-unit quantities are read-only after the buy locks. Use Replenishment for an additional buy. The receipt says how many units landed across how many colourways, and adds a note where the split had to round to whole basis points: > {units} units recorded across {n} colourways. The Whose column then reads Yours with your name. A refusal carries the server's sentence in the drawer, and the record stands as it was. Before anything is sent, the drawer answers the two cases it can see itself: > No units are typed. > Every colourway at zero is refused. ## What to do The way back is the next write: other units, or the depth's own hand-back, which returns the style to the forecast. To divide a depth already typed without changing it, use [Set a colour split](../commitments/act-set-a-colour-split); to type the style's depth as one figure, use [Set a worked depth](../commitments/act-set-a-worked-depth). [Add to Bench](../commitments/act-send-to-the-bench) carries the pair to the Bench once every colourway has a reading. ## Refusals you may read This act has its own sentences. A colourway the style is not offered in is refused by name, and the sentence lists the colourways it is offered in. A style outside the commitment's scope, or one your catalogue does not declare as managed by Tightly, is refused. A negative figure is refused. > Every colourway at zero is the style cut to nothing, and that is one decision, not a split: record it as a depth of zero, so a cut stays sayable one way. > This style is not offered in colourways, so there are no colour depths to type. Its buy is a single depth. > This style is offered in exactly one colourway, so the whole buy is already that colourway. Set its depth instead; a one-colour split would be a decision that says nothing. > This style's depth is already set channel by channel, and colour units type the style as a whole. Saved on top, the two would count its buy twice. Change the channel depths, or clear them all first. > Saving colour depths is not available on this account yet. Nothing was changed. --- # The agreed book Source: https://docs.tightly.io/help/commitments/agreed-book Reviewed: 2026-09-26 ## The question this page answers What has one account confirmed for this commitment, style by style, at what price, and how does that compare with last time and the money declared? ## What you see ::: shot page ::: The agreed book shows confirmed commercial bookings. Drafts and holds stay in Tightly Connect for review. Recording proposed quantities sends nothing and leaves confirmed totals unchanged until the booking is confirmed in Connect. It opens from On this commitment on [the room](../commitments/the-room) before the season and on continuity, and from an account in Tightly Connect. Continuity shows confirmed linked bookings across recorded seasons, with account and unit totals and a Read only badge. Its style values come from the recorded line totals. Recording requires a seasonal book; continuity has no season to declare on this page. The head carries the commitment's name, its stage badge, and the season code at its right edge. Before an account is chosen, a chart and a table rank every account that can hold a book for the season: Account, Confirmed value, Confirmed units, Last season and Tier, the chart's own line giving the total on the book against last season. Where no account holds anything yet the head says so in place of a chart, down to "No account on {season} yet." where none exists at all. Pressing a row chooses that account. Once an account is chosen, the head's sentence says where its book stands: what is already on it, what has been typed and not yet recorded, or how far the typed book runs past the envelope. Beneath it, figures count the Styles typed, the Units, what was Proposed by the plan, any booked figures being replaced, and the Envelope declared when the typed value passes it. That is the page's one attention mark. Controls choose the account, set one Ships from date for the book, filter by category and find a style. The table has one row per style the commitment covers: Style, Already booked, Last time, Units agreed, the wholesale price and Line value. Last time reads what the account sold of the style's predecessor against what it held, with the sell-through; a style with no predecessor reads No predecessor, and a sell-out nobody measured reads Not measured. The wholesale price is prefilled from the account's terms or its booked price where one is on file. An empty Units cell records nothing, and a row with units and no price reads Needs a price. ## What to do 1. Choose the account. 2. Type **Units agreed** and a price per style, or press **Take** to adopt last time's sold figure. 3. Set **Ships from**. Above the button the page says what is still missing, for example: > Still needed: a ship window start. 4. Press **Record what was agreed**. This needs Read & write access. 5. Read the receipt and **Awaiting confirmation** status. Press **Review in Connect** to open the same account and commitment. Recorded proposals do not increase the confirmed totals, and nothing is sent to the account. Partial success is normal: good rows land, and a refused row is marked Not recorded with its reason on hover, such as No first delivery day. A second record of the same style is a new version of the line, never a duplicate. Arriving from Tightly Connect, the page opens with the account already chosen and any units the plan proposed filled in, with a door back to where you came from. From Showroom, the proposed prices also carry forward alongside their quantities. Review both before recording; opening the page does not save an agreement. ## When it is empty or failed > No commitment with that id. > Choose a commitment to record an agreed book. > Commitment failed to load. Recording is unavailable. > Declare a season to record an agreed book. > Styles failed to load. Retry to record changes. > Accounts failed to load. Retry to choose an account. A commitment with no style reads This commitment covers no styles. Where what the account already booked could not be read, the page refuses to record, because a typed figure could replace a line unseen. --- # Buy envelope Source: https://docs.tightly.io/help/commitments/buy-envelope Reviewed: 2026-09-07 ## What it is The buy envelope is the money a commitment may place in total, at cost, held in dollars (a Bench group reads its figures in the commitment's currency at the rate served for it): the living envelope every other money figure on the commitment is read against. For a boxed season it is a pot for the window. For a rolling commitment it is a rate per fiscal month, and the position is measured over the current month, because a cumulative ceiling on a window with no end is not a constraint anybody can act on. Declare and the money line call it the Buying budget. A commitment may declare no envelope. Its availability floor and its pace still bind; it reserves from no pool, so it can never own the same dollar as anything else, and nothing measures money against it. ## How Tightly decides it The planner declares the envelope on Declare with a basis, and Declare opens it at Tightly's suggestion: the scope's cost of goods sold over the trailing 180 days, scaled to the declared window's length, labelled own history. Two commitments may never own the same dollar: a declaration whose scope or pools another live commitment already owns is refused, and the rule is settled at sign-off, because a pending declaration claims no pool; submit checks too, as an earlier refusal. Per-channel legs carve the header's dollars and may never sum past them; they never add. The envelope is measured, not enforced, on every read: placed purchase order cost against the scope over the window counts as placed, drafted orders as drafted, and the delivered slice at the order's own cost as received. The ladder ties in cents: open to commit is the buy envelope less the chase reserve less what is placed, and it goes negative when placed spend eats into the reserve, because flooring it would hide the breach. It is enforced at exactly one door: confirming a purchase order out of Drafted refuses, line by line, any line its commitment cannot fund. The weekly verdict on the envelope reads the same ladder. Placed orders costing more than the envelope is over committed, and the replenishment engine's forward need running past free to commit is short; both are urgent at once. Otherwise it is on track, and a position that could not be computed reads not measured. Watch fires when the surplus, free to commit beyond the forward need, falls to a fifth of the envelope. ## The words on the face | Word | Where | What it means | |---|---|---| | Buying budget | Declare, the desk's money line | The envelope as signed | | Envelope | All commitments | The envelope as signed, per row and summed in the head | | Protected reserve | The money line | The reserve still held back | | Available to commit | The money line | The buy envelope less the protected reserve, placed orders and draft reservations | | Draft orders | The money line | Money reserved by drafted purchase orders | | Open to commit | All commitments | The buy envelope less the chase reserve less what is placed | | Placed | The money line | Purchase order cost placed against the scope | | Remaining to plan | The pre-season money line | The buy envelope less the buying reserve less the worked buy | | No envelope declared | The Bench | This commitment measures no money | | Ceiling | The band cell of The five | An envelope has no band; this is the word that says so | On the Bench, every prospective order says which commitment it draws on and how that sits against what it can still fund, its free to commit: Within the envelope, At the limit (within a cent) or Over the envelope. Nothing on the Bench has been spent; the envelope moves when an order is placed, not when a line is staged. ## What you can do about it Amend moves the envelope as a new version with a receipt. Release the chase moves reserve dollars into open to commit against a named winner. Where the replenishment engine wants more than is free to commit, the money line adds Recommended buy and Funding gap, so the shortfall can be counted off the line. The Bench shows what staged lines would draw before any order exists, and Close frees the envelope's dollars the moment it commits. ## Glossary line The buy envelope is the money a commitment may place in total at cost, a pot for a boxed window and a monthly rate for a rolling one; the envelope the ladder ties to in cents. **Needs pricing** means the staged draw is incomplete. Those lines cannot be labelled within the envelope until their costs are known. --- # Capital Source: https://docs.tightly.io/help/commitments/capital Reviewed: 2026-09-07 ## The question this page answers How much cash is in this book's stock, how old is it, and which way is it moving? ## What you see Capital reads the money in a commitment's stock. It is offered once a boxed season's window has ended, or the season is closed, under the room's Close the book tab, beside Close the book, Finish clean and Hindsight. Stock ageing comes first, dated to its reading day. A switch chooses how stock is aged: Latest receipt or Season. The table lists each Age band with its Units, Stock at cost and Share, and on the season view a Proposed provision. Supplier performance follows: Supplier, Received / ordered and On time, with Orders, Partial lines and Unit cost range in the column chooser, and an Orders button that opens that supplier's purchase orders. Beneath, the commitment's category is read at each of the last twelve month ends, ending with the last month that has closed before today; the current month has no closing balance yet. Months of supply is read from what the category sold. Stock value change says how much the balance moved and whether it is up, down or level. Where the stock was counted late the figures say how late, and where the balance cannot be read they give the reason. Where more than one month end was counted, Stock value at cost draws the month ends as a line for the category; pressing a month opens stock on hand at that month end. The balance is read only for a commitment scoped to a category. ## What to do Nothing here writes. The Open menu holds the doors: Open to buy, while the commitment is not closed; Investment review, which opens the investment review in Finance; and Stock at the last counted month, which opens stock on hand at that month end for this category. [Finish clean](../commitments/finish-clean) is where the leftovers are routed and the close is recorded. [Capital quadrants](../product/capital-quadrants) is the same money read by variant and location across the catalogue. ## When it is empty or failed When the ageing read fails, the card reads Review unavailable, with Retry. A band or supplier with no figure shows a dash rather than a zero. A month that was not counted keeps its place, the line breaks there rather than drawing a balance nobody measured, and Stock value change shows a dash with the missing-reading reason on hover or focus. A commitment that names no category has no month-end balance to read. --- # Channel scope on money Source: https://docs.tightly.io/help/commitments/channel-scope-on-money Reviewed: 2026-09-07 ## The sentence On [Buy plan](../commitments/the-desk), where the styles of a commitment scoped to a channel would be worked: > A channel commitment has no styles to work, because orders carry no channel. On [Open to buy](../commitments/open-to-buy), a channel commitment now gets its money grid. Only where your book cannot yet hold a plan by channel does the read refuse it whole, in this sentence: > A channel commitment has no category money position, because stock and orders carry no channel. ## What it means A commitment can be scoped to what you sell, a category, a collection or a set of styles, or to where you sell it, a channel. Stock sits in a warehouse and a purchase order is placed for a product, and neither carries a channel. So nothing on the shelf or on order can be attributed to a channel commitment, and a position made up from it would be a figure nobody could tie. On Open to buy the grid still draws for a channel commitment: its plan is what somebody types there, month by month, and stock and placed orders are left out rather than shown as zero, each with its reason on the read. It is not a failed read, which says that it failed and shows no figures. The desk cannot do the same, because it works styles by what is on order, and orders carry no channel. The sentence is an answer, not an error page and not an empty position. The commitment exists and its terms are declared. The book's position read carries its envelope as not computed with a stated reason rather than a zero, and never as on track, and its weekly verdicts run, with any number that needs stock or orders stated as not measured and why. And it is not a refusal of the commitment itself: a channel is exactly what a planner selling through accounts declares. ## What to do next Nothing on the desk clears it; the sentence is the shape of a channel scope. Plan the channel's money on Open to buy, read its envelope on [the declaration](../commitments/the-declaration), its weekly verdicts on Selling periods, and the account book on Tightly Connect, where what each account has booked against the commitment is the channel's only orders. Where you need a category position as well, a second commitment scoped to the category carries it; the two are read side by side and neither owns the other's money. ## Who to ask Ask Tightly on the page answers from this article and can read the channel's envelope and verdicts for you. --- # Release the chase Source: https://docs.tightly.io/help/commitments/chase-release Reviewed: 2026-09-07 ## The question this page answers Which style has won, how much of the reserve goes to chasing it, and what does the release leave held? ## What you see Release the chase spends the [chase reserve](../commitments/chase-reserve) on a named winner: the act the reserve was declared for. The head names the commitment. The reserve is a row set of three legs, and it stays three legs at every step: declared, released, still held. What the reserve has paid for lists earlier releases as the record holds them. Choose styles to chase picks one or more winners from the styles inside the commitment's scope, and with one picked, How it is selling reads its evidence per channel beneath the pick. The release is a dollar amount, never a percentage, per style where several are picked, capped at what is still held, with Release all beside it; Why is this changing? asks for a reason code, the note optional. The consequences before the button say what moves and what does not: the dollars move out of the reserve into open to commit on this scope, where they are not ring-fenced, and what stays held; and the declared reserve does not change, because this spends against it and writes no amendment. The engine's own refusal, where there is one, stands above everything else on the page, verbatim. ## What to do Releasing takes the Commitments door, an admin or a member given it. Name the winner, name the dollars, pick the reason, press Release. The receipt renders where the button was, naming the winner, the dollars, what is still held and what was released before, recorded as the next version. There is no way back through this page: a release is a version on the record, and the reserve is refilled only by amending the declaration to hold more back. On [Buy plan](../commitments/the-desk) the Today reading offers this act while a reserve is releasable, and it is under On this commitment. The book's row door and [the room](../commitments/the-room)'s acts offer it too. ## When it is empty or failed > No commitment at this address. > The declaration did not come back. > The reserve does not exist until the declaration is signed off. A closed season's reserve closed with it, and the page says so in place of the fields: > This season is closed, and its reserve closed with it. A seat without the Commitments door reads: > Releasing a buying reserve needs org-admin access. The fields refuse in place until they are answered: > Select at least one style to chase. > Enter an amount to release. > That is more than the reserve still holds. Release what is there, or amend the reserve to hold more back. A position that did not answer is a failed read, not a reserve of zero: the head says the reserve is unknown and nothing can be released against it, and Read it again is offered. A catalogue that did not answer lists no styles and says: > Catalogue failed to load. The server refuses, as an answer about the state and never as a bad request, a closed commitment, a channel scope, no declared envelope, no declared reserve, a season that has not opened, a reserve already fully released, and a release larger than what is still held; the last one carries the declared span, what was released before, and what is still held, so a concurrent release can be told from a mistyped figure. A style outside the scope is refused with the scope it falls outside. --- # Chase reserve Source: https://docs.tightly.io/help/commitments/chase-reserve Reviewed: 2026-09-07 ## What it is The chase reserve is the part of the buy envelope held back so a planner can react in season: chase a style that is selling ahead, rather than spend every dollar before the season has told you anything. It is declared as a percentage of the envelope, with a basis, and it is a span of the envelope, never a second pot. A commitment with no envelope has no reserve, because a percentage of nothing is not a declaration. Declare calls it the Buying reserve; the commitment money line calls the amount still held Protected reserve. ## How Tightly decides it The planner declares it on Declare, which opens it at Tightly's suggestion of 15%, labelled a convention: there is no measurement to ground a reserve in, so the suggestion is the house rule, said as such, and never hard-coded into the declaration. You may type over it, and the difference is recorded. In season the reserve is spent by releasing it, never by lowering the percentage. Release the chase moves dollars out of the reserve and into open to commit against a named winner in the commitment's own scope, with a reason. Each release is a row that is never edited, joined to a version on the commitment's trail, and the reserve still held is the declared span less every release. The declared percentage is left alone: the promise is one fact and what was spent against it is another, and both are kept. A release is in dollars, not points, because a percentage of a large envelope cannot name an exact sum. A release is refused, in words, on a commitment not yet signed off, on a closed commitment, on a channel scope, where no envelope or no reserve was declared, on a rolling commitment with no published plan covering today, where the reserve is already fully released, before the window opens, or for more than is still held. The reserve stays in dollars after buy lock. Once the season opens, it can be released against in-season demand; the original buy plan remains locked. Two releases at once cannot both succeed against one reserve. Released dollars are not ring-fenced for the winner: the release widens open to commit, and the one door that consults the ladder is confirming a purchase order out of Drafted, which refuses, line by line, any line the commitment cannot fund. Every other purchase order write proceeds without consulting a commitment. ## The words on the face | Word | Where | What it means | |---|---|---| | Protected reserve | The commitment's money line | The reserve still held back, with how much has been released so far | | Buying reserve | Declare | The declared share held back for in-season buying | | Exact hold | The band cell of The five | The reserve is held exactly; it has no band | | holding | The five | Open to commit has not eaten into the reserve | | watch | The five | Open to commit has fallen to a fifth of the reserve; the next commit is close to eating in | | breached | The five | Placed spend has crossed into the reserve | | Release the chase | The room's acts | The act, and the page it opens | ## What you can do about it Release the chase, with the winning product and a reason, from the room. Amend changes the declared percentage as a new version. The Bench shows what a staged chase would draw against what the commitment can still fund. ## Glossary line The chase reserve, Protected reserve on the commitment money line, is the share of the buy envelope held back to buy in season, a span of the envelope and never a second pot, spent by releasing dollars against a named winner while the declared percentage stands. --- # Close a commitment Source: https://docs.tightly.io/help/commitments/close Reviewed: 2026-09-26 ## The question this page answers The window has ended. How did the season go, what is left, and where do the leftovers go? ## What you see ::: shot page ::: Close a commitment ends a boxed season whose window has ended, scores it, lands its residue, and records both. It is five cards down one page, never a stepper: the consequence, the clearance, the plan, the destination, the close. The head names the commitment and the act, Close and reckon. The close reading is a preview of what closing would record, measured again inside the close itself. What falls out of cover counts the variants that stop being measured by anything once the season closes. Declared against delivered reads the [buy envelope](../commitments/buy-envelope), the one of the five that is honestly scoreable at the close, and Not scored lists the other four, each as a stated absence with its reason on hover. What is left is the clearance reading: what is still on hand at cost, and how much of it never sold at all. The leftovers by route is the plan: the units still here, typed onto routes, with the last row footing what is left unrouted. Where your finance terms declare a recovery rate the table becomes What the leftovers are worth, with Comes back and Does not come back; where none is declared it says so once. Which Commitment takes the carry names the commitment that takes carried units, and What routing moved says what each change does as you type. Clear the routes starts again. Where the leftovers go reads the destination off the plan where units are routed, and otherwise asks for one of the four the server offers, each with its own sentence on hover: carry it over, fold it into a standing commitment, clear it on price, or return it to the vendor. Folding in must name the standing commitment that takes the residue; nothing is inferred, because under the same-dollar rule a wrong assignment blocks the right one. Carrying over may name the commitment that takes it, and does not have to, because that commitment often does not exist until the close frees the dollars. Say why asks for the reason this commitment is closing, required. Above the final button stand five sentences: the claim on the pool released and free to re-declare from the close on, the envelope and what went unspent or was placed over it, that it cannot be re-opened and from the close on nothing scores these five numbers, that nothing moves, and where the leftovers land. [Finish clean](../commitments/finish-clean) in the room works the same route plan, and can record the close from there. ## What to do 1. Read **What falls out of cover** and **What is left**, the preview of what closing would record. 2. Route the leftovers under **The leftovers by route**, or clear them and start again with **Clear the routes**. 3. Under **Where the leftovers go**, choose a destination: carry it over, fold it into a standing commitment, clear it on price, or return it to the vendor. 4. Name the commitment that takes it, where the destination needs one. 5. Type a reason under **Say why**. 6. Press **Close and reckon**. Closing takes the Commitments door, an admin or a member given it. The page becomes the record: Closed and scored, with the reckon as measured once at close and served as recorded, never recomputed, and Where the leftovers landed. Nothing moves: no stock is transferred, no product is reassigned, nothing is marked down. A closed commitment cannot be re-opened; the way back from a wrong close is a new declaration, which is possible because the dollars are free again. A declaration that should stop early rather than finish is ended by [Retire a commitment](../commitments/retire). ## When it is empty or failed > No commitment at this address. > The declaration did not come back. A pending declaration was never armed, so there is no season to close, and the page offers Retire it instead: > Never armed. Retire it instead. A seat without the Commitments door reads: > Closing a Commitment needs org-admin access. While the preview is read, and where it did not come back: > Measuring what a close would record. > Close reading failed to load. No close attempted. The server's own verdict on whether this commitment can close renders in its words where it cannot: a rolling window has no season end to reckon, and a boxed window still inside its dates would free the pool while receipts are still arriving. The fields refuse in place: > Choose where the leftovers go. A closed season’s stock that lands nowhere stops being measured by anything. > Choose the commitment receiving the remaining stock. > Enter a reason for closing. A refused close renders as a card, The close was refused, and says nothing was written, so nothing closed. --- # Finish clean Source: https://docs.tightly.io/help/commitments/finish-clean Reviewed: 2026-09-07 ## The question this page answers What is still here at close, where does it go, and what does not come back? ## What you see Finish clean is the closing season's reading of what is left, and it is where the close is recorded. It is offered once a boxed season's window has ended, or the season is closed, under the room's Close the book tab, beside the Close the book view itself. Its figures come from the close preview, which computes what closing would record and writes nothing. The top card counts what is On hand, its value At cost, and what Sells before the close at the current rate, or what Never sold once closed. Beside it, Selling weeks left is a stepper for the weeks still to sell, with what a week is worth; the close date is the close's own or the window's end. The styles table lists each style with its Terminal units, a Route to choose, Opens at for a style carried into the next season, its Unit cost, and how many colourways it is priced across. A style with nothing terminal says so rather than offering a route. The route plan is one table: Route, Units, Share, Comes back and Does not come back. The five routes are Carry to next season, Markdown in channel, Return to vendor, Off-price and Donate. Units per route are typed; the recovery is the reading's own. The remainder row says No route yet for unplaced units or Routed twice where units are placed twice. Clear the routes empties the plan. Missing recovery values have a dash with their reason on hover or focus. A failed recovery read offers **Retry** beside the table. ## What to do Type the units per route, or choose a route per style, until nothing is unplaced. Where units are carried, choose Which Commitment takes the carry; the depth it opens at is typed per style. Give the reason under Why this season closes here, then press the door at the foot: Record N routes, or Record where the leftovers go. The press records the close with the route holding the most units as its one destination and the whole split beside it. Carried styles open the next season's buy at the depth typed. After the press, **Recorded · read only** confirms the save and the table shows the recorded route values. Where a next-season buy is available, its button opens that buy. A carry depth that could not be saved keeps its refusal visible. The action is disabled, with its reason beside it, where the close preview did not answer, the commitment cannot be closed, the stock is not counted, units are unplaced or routed twice, the leading route is not one a close can record, a carry has no receiving commitment, or no reason is given. Recording a close needs the role that signs commitments off: > Recording a close needs an administrator. [Capital](../commitments/capital) reads the same stock as money at each month end. ## When it is empty or failed A loading indicator appears while the close is read. > The close reading did not answer. A figure that cannot be measured reads Not measured or Not counted rather than a number, and a style with no cost reads No cost recorded. --- # Margin floor Source: https://docs.tightly.io/help/commitments/margin-floor Reviewed: 2026-09-07 ## What it is The margin floor is the blended margin the season may not close under, declared as a percentage with a basis. It is the third of the five numbers. Like the availability floor it is a floor and carries no band: any week under it is already a deviation, and Tightly never invents a tolerance around it. ## How Tightly decides it The planner declares it on Declare, where the margin row opens at its band floor rather than at a suggestion, and types the figure per channel. Tightly's suggestions read does serve one: the book's own realised margin over the trailing 180 days on the sales whose cost is known, less five points, rounded down, labelled own history. Nothing enforces the floor; it is measured every week, and no verdict proposes a markdown. Each Monday the verdicts engine measures the realised margin of the week that closed: net sales less the cost of the goods sold, over net sales, taken only over the sales whose cost is known. Where costs are recorded on less than half the week's net sales, the week reads not measured. The share of sales with a known cost travels beside the figure, and so does where the cost came from, because the three rungs of the cost chain are not equal: the cost stamped on the sale itself, the default supplier's cost today, or the variant's own cost today. A margin measured on the first and a margin inferred from the others used to be one number with one name; now the split is served. The same two figures divided the other way give the markup, measured or absent, never assumed. A four-week rolling mean sits beside the week so one odd week does not read as a trend. A week under the floor reads needs review; it turns urgent when the rolling mean is also under the floor or the miss has run three weeks. ## The words on the face | Word | What it means | |---|---| | Floor | The band cell: a floor has no band | | holding | The week's margin sits above the floor | | watch | A recorded deviation held below the worklist by the money floor | | breached | Under the floor and flagged this week | | not measured | Costs were recorded on less than half the week's net sales, so it was not scored | | not scored | The window has not opened, or the first week has not closed | ## What you can do about it Declare sets it and Amend moves it, as a new version. A margin under its floor is read in the room, where the next action opens pricing in season and the buy before it. A scenario records what a markdown or a price move would do, as a proposal a person may promote or decline and never as a price written anywhere. Missing costs are the usual reason a week reads not measured: the cost stamped on the sale, the default supplier's cost and the variant's own cost are the three places a cost is read from. ## Glossary line The margin floor is the declared blended margin the season may not close under, scored weekly on the sales whose cost is known; a floor, so it has no band. --- # Open to commit and free to commit Source: https://docs.tightly.io/help/commitments/open-to-commit Reviewed: 2026-09-07 ## What it is Open to commit is the rung of the ladder that says what room is left: the buy envelope as declared, less the chase reserve still held, less what has been placed. Free to commit is open to commit less what has been drafted and not yet placed. The two differ by exactly one thing, the reserved money sitting in drafted purchase orders, and they answer two different questions. Open to commit says where the ladder stands against placed spend. Free to commit says what may still be written today. The commitment's money line shows Available to commit: free to commit after draft reservations. Draft orders appear separately beside Placed and Protected reserve. All commitments' Open to commit column and its Available total retain open to commit before draft reservations. Free to commit is also said in the Bench's clause, and a month of the plan carries it as a column. On a plan month, the month's receipts needed less what is placed for it is Open to buy, the plan's residual, and not this rung. ## How Tightly decides it Both are computed in integer cents from the same read. Open to commit is signed: an over-spent envelope reads negative, because flooring it would hide the breach. Free to commit is unfloored for the same reason. The verdict a commitment carries, short or on track, is tested against free to commit, not open to commit, so drafts that have already claimed the room cannot let the same dollars be spent twice. A commitment whose drafts could not be read is never on track: a green is never stated on unknown drafts. Open to commit is not open to buy, and neither is the company's Budget left. On the ladder, what remains of the envelope is the envelope less what is placed; the chase reserve is a policy on how much of that to leave alone, and open to commit is the signed distance between the two: what remains, less the reserve still held. Open to buy is the plan's own residual, receipts needed less what is placed, and Budget left is the company's approved receipt budget less placed purchases. A release moves money out of the reserve and into open to commit by arithmetic, adding back exactly what was released. Open to buy is read per category per month on its own page. ## The words on the face | Word | Where | What it means | |---|---|---| | Open to commit | All commitments | Declared less held less placed | | Available to commit | The commitment's money line | Open to commit less draft reservations | | Draft orders | The commitment's money line | Money reserved by drafted purchase orders | | free to commit | The Bench's money clause, a plan month's column | What may still be written today | | Available | The head of All commitments | Open to commit, totalled over the rows in view | | Within the envelope, At the limit, Over the envelope | The Bench | How staged lines would sit against free to commit; At the limit is within a cent | | No envelope declared | The Bench | The commitment measures no money | On the Bench the clause names the commitment the staged lines draw on and its free to commit, or counts the commitments where they draw on several, and the commitments over their limit come first. Staging reserves nothing: the figures are what the lines would draw if they became orders. ## What you can do about it Release the chase to widen open to commit against a named winner. Amend to move the envelope itself. Cancel drafted purchase orders to hand reserved money back to free to commit. Confirming an order out of Drafted is where a line the commitment cannot fund is refused, line by line; every other door writes without consulting the ladder, and the position simply shows it. ## Glossary line Open to commit is the envelope less the chase reserve held less what is placed, the room left on the ladder; free to commit is open to commit less what is drafted, what may still be written today. **Needs pricing** means the staged draw is incomplete. Those lines cannot be labelled within the envelope until their costs are known. --- # Retire a commitment Source: https://docs.tightly.io/help/commitments/retire Reviewed: 2026-09-07 ## The question this page answers What stops being defended if this commitment ends now, and where does its scope go? ## What you see Retire a commitment ends a declaration early, or withdraws one that was never signed. It is not a close: a close says a season finished and how it went; retiring says a declaration stopped. The head names the commitment and the act, Retire it. For a pending declaration the head says it never signed off and so claims no pool back. What stops being defended is a row set per number: which of the declared numbers stop being armed, and which were recorded only, with no engine holding them. Standing commitments on this book lists the continuity commitments that keep catching once a season ends, with their cover corridors. The ending has two fields: Supersede, if something takes over, a choice of up to two other active commitments, optional; and Why this is ending, required. The consequences stand before the button, and each is a sentence about this commitment: how many declared numbers stop being armed, or that none was armed and all were recorded only; what returns to the pool, or that no pool is freed because none was declared, or that no pool is claimed back because the declaration never signed off; that nothing is cancelled, nothing moves, and the declared numbers stay on record at their version; and that without a successor the scope is left with no commitment. The residue is never estimated beforehand. ## What to do Retiring takes the Commitments door, an admin or a member given it. Choose successors if something takes the scope over, say why, and press Retire this commitment, or Close and supersede where a successor is named. The receipt is the page becoming the record: Retired or Superseded, what falls out of cover as a count at variant grain, and that the scope's open to buy is free to re-declare from this commit on. Nothing is cancelled and nothing moves. There is no way back: a commitment ends once. To end a boxed season that has run its window, use [Close a commitment](../commitments/close) instead, which scores it. [The declaration](../commitments/the-declaration)'s head, [the room](../commitments/the-room)'s acts and [Buy plan](../commitments/the-desk)'s On this commitment all open this page. ## When it is empty or failed > No commitment at this address. > The declaration did not come back. A commitment that has already ended shows its close on record, who ended it, when and why, in place of the fields: > Already closed. > Retiring claims no pool back; it was never signed off. A seat without the Commitments door reads: > Retiring a Commitment needs org-admin access. A missing reason is refused before the press: > Enter a reason to retire this commitment. The server refuses a second ending on a commitment that has already closed or retired, because a commitment ends once and a second close would record an ending that did not happen. A refused write renders as a card, The close was refused, and says that nothing was written and nothing ended; the fields keep what you typed. --- # Selling periods Source: https://docs.tightly.io/help/commitments/selling-periods Reviewed: 2026-09-26 ## The question this page answers Which windows has this tenant declared, when does each open and close, and what is each measured against? ## What you see ::: shot page ::: Selling periods is where you declare a window, a season or a drop, from its first to its last selling day inclusive. Forecasts, and on Tightly Pro commitments, stand on these windows. It opens on every plan. The head's figure row counts what is declared and how many are running, upcoming and finished. The toolbar's **More** carries **Season membership**, the engine's review of what belongs in each declared window, opened in place, and **Set up selling periods**, which offers two routes: analyse imported sales, or declare dates yourself. The table lists periods newest first, with dates, selling days, predecessor, product count and state: Running, Upcoming or Finished. **Measured against** identifies the predecessor you selected. A dash means no value has been recorded; hover or focus it for the reason. Choosing **Declare dates**, or pressing an existing row, opens a drawer titled Declare a Drop or Declare a Season, seeded from the row where there is one. Its fields are Name, Called a (Drop or Season), Opens and closes, and Measured against, whose options are the earlier periods of that kind and This is our first Drop (or Season). Hints under the fields give the selling days, whether demand is shaped by day or by week, and what the predecessor is compared against; unanswered, the comparison falls back to the calendar. A window that has already finished carries **What was in it**, listing what sold inside it so a person can take a product back out before it is recorded. ## Set dates for one product or SKU No commitment is needed. Open a product from **Products → Catalogue**, then **Product information** and edit its **Selling window opens** and **Selling window closes** dates. For an individual SKU, open its variant and **Edit attributes** to set the same fields. Historical dates are supported; leave the closing date blank for a product still selling. These direct dates do not create a named selling period. For a named historical season, declare its dates here or analyse imported sales below; nothing is assigned until you approve it. ## Analyse imported sales Choose **Analyse imported sales** to look for groups of products that sold together. Choose a history window and optionally search for a product group. Results cover at most 500 products per batch; continue through the additional batches when shown. Each proposal names its leading product. Review the proposed products, remove any that do not belong, then name the period, choose **Drop** or **Season** under **Called a** (it starts on the kind your calendar mostly uses), and pick its first and last selling day. A last observed sale is evidence, not a closing date; you supply the last selling day. Approval saves that period and its chosen products together. Existing declared periods keep their dates. If analysis takes too long, shorten the window or search a smaller group. Analysis needs access to the whole company history; approval also needs Read & write access. ## What to do 1. Press **More**, then **Set up selling periods**, then **Declare dates**, or press an existing row to open the same drawer seeded from it. This needs Read & write access; a seat without it reads the calendar only, and the menu and drawer name the reason. 2. Name it under **Name**, and choose **Drop** or **Season** under **Called a**. 3. Set the first and last selling day under **Opens and closes**. 4. Answer **Measured against**: an earlier period, **This is our first Drop** (or **Season**), or **Leave unanswered**. 5. For a window that has already finished, use **What was in it** to take a product out of what gets recorded against it. 6. Press **Declare the Drop** (or **Season**) to write it. Above the button, the drawer says what is still needed until every requirement is met, and a refusal holds the write back with its own reason; nothing is written until it clears. ## Edit or archive a period A row's menu offers **Edit** for the name, kind, dates and **Measured against**; only changes are saved, and moving the dates leaves recorded products as they are. Admins also see **Archive**, which removes the period from every list and cannot be undone; a period a commitment or line plan still uses is refused. ## When it is empty or failed A first run states the consequence of an empty calendar: > Every forecast sits on a standing twelve-week span that starts today. While the calendar is read: > Reading the calendar this organization has declared. A calendar that could not be read is a failed read, and declaring is held back until it can be read, so that a new period is never given a predecessor that already exists. Membership has its own states: > We could not read what sold inside this window, so no products can be recorded against it. The period itself can still be declared. > How many products sold in this window is not known yet. > Nothing matches. All stay recorded. A window in which nothing in the catalogue sold is recorded with no products in it only on purpose, and the form asks you to check the dates first. A write the calendar did not confirm says the period may not have been recorded; a refused write says it was not recorded and nothing has changed. --- # Stage and status Source: https://docs.tightly.io/help/commitments/stage-and-status Reviewed: 2026-09-07 ## What it is A commitment lives on two axes at once. Its status is what the declaration is: Awaiting a second signature, Signed off, Closed, or Retired. Its stage is where the season sits: Pre-season, In season, or Closed. The two are different questions with different answers, and a commitment signed off for a season that has not opened is Signed off and Pre-season at the same time. The word Active names both on the wire, which is why every row carries both and the book says which axis a tab filters on. ## How Tightly decides it Status is written by acts. Declare writes a pending declaration; Sign off arms it and it owns money from that moment; Close ends a boxed window that has passed its end, scores it and lands what is left; Retire ends a declaration early, or withdraws a pending one. There is no rejected status and no reopen: a submission the approver will not arm is withdrawn through Retire, and the way back from a wrong close is a new declaration, possible because the dollars are free again. Stage is derived, not stored. It is the lifecycle crossed with where the current retail week sits in the window: Closed when the status is closed; Pre-season when the window has not opened; In season when the window is open, or rolling, or has ended without yet being closed, since a season past its end still needs reckoning. Every night a pass walks the whole book and records each move between Pre-season and In season on the commitment's trail, dated by the window rather than by the run, so a missed night costs nothing. A move into Closed is not recorded twice: the close or the retirement is already on the trail. A person who holds the Commitments door, an admin or a member given it, may force the stage, with a reason that is required, and the force holds until it is cleared: it does not lapse when the real window opens. Forcing changes which surfaces the room offers and which tab the commitment lists under, immediately. It changes nothing any engine measures: the weekly defence, the pace forecast, the envelope ladder and the same-dollar rule read the declared dates and whether the commitment is live, never the stage. Forcing a closed commitment does not reopen it. ## The words on the face | Axis | Word | What it means | |---|---|---| | Status | Awaiting a second signature | Declared, not signed; owns no money | | Status | Signed off | Signed; the envelope is armed; Signed off · book not started while nothing is staged or on order | | Status | Closed Sep 12, 2026 | Closed, dated as words | | Status | Retired | Ended early with no successor named, or a pending declaration withdrawn | | Stage | Pre-season | The window has not opened; a pending declaration files by its window like any other | | Stage | In season | The window is open; the book's tab reads Active | | Stage | Closed | Ended, by a close, a retirement or a successor | | Autonomy | Proposing | The engines put figures forward and a person approves; never a status | All commitments swaps its whole column set with the stage tab: the five and open to commit when running, the declared plan and readiness before it opens, the outcome and the five at close once closed. An empty tab is not an empty book, and each names its own emptiness: > Nothing is inside its window. > Nothing is waiting to open. > Nothing has closed yet. ## What you can do about it Sign off, Close and Retire move the status, each a version with a receipt. No page offers a door for forcing a stage yet; a forced stage is a fact on the commitment's record, with its reason and who set it, and clearing one is its own recorded act, never a force to today's stage. ## Glossary line Status is what a declaration is, Awaiting a second signature, Signed off, Closed or Retired; stage is where its season sits, Pre-season, In season or Closed, derived from the window each night unless a person forces it. --- # All commitments Source: https://docs.tightly.io/help/commitments/the-book Reviewed: 2026-09-26 ## The question this page answers What does this book hold, what needs a person this week, and what is waiting on a second signature? ## What you see ::: shot page ::: All commitments is the book, the page under Commitments on the rail. It opens on an overview of every commitment as a card. A filter narrows them by phase: All, Continuity, In-season, Pre-season, Post-season and Closed, each with its count, and a search box finds a commitment by name. Cards are grouped as Trading now (continuity and in season; on a book that is mostly continuity, Continuity and In season stand apart), Preparing the next buy (pre-season) and Closing the loop (post-season and closed). Each card shows its phase, its selling dates (or Ongoing replenishment for continuity), its name and scope, and either its Declared buy, with At risk where a next decision has money at stake, or, once closed, the Season outcome. Beneath, the card ends in one action button carrying its figure, with further decisions in a menu beside it (the finding's sentence is on hover), or Open commitment where there are none. Pressing a name opens the commitment's room. The head carries a Last season door where there is one and, for a person who can sign commitments off, Declare a commitment. A clock button appears when the scored weeks are out of date, and the weekly verdict engine states its own run beneath the head. The book can also be read as a table, by stage: Active, Pre-season and Closed, each with its count. Active shows Commitment, Status, Open to commit, Buying budget, and Season and timing. Pre-season shows Readiness, the Buying budget and when the season Opens. Closed shows the Outcome, Received against the buying budget, and when it Closed. Show details adds the five (as None scored yet, All five holding, or 3 of 5 holding) and each declared term, plus a bar against the largest budget and a Placed column. Rows that need a person come first, then rows nobody has scored, then rows that are holding. A budget nobody declared reads Not on file. A scope on a sales channel has no spend of its own, and its row says so: > Purchase orders carry no sales channel, so this scope has no spend of its own. On Active and Pre-season, a Next action column holds at most one door per row: Sign off for a declaration awaiting a second signature, Close for a season past its window, or Release the chase where a reserve can be released. Where the viewer cannot act, the reason stands in place of the button. A seat that signs commitments off also gets a row menu on every open season, offering **Archive commitment** (**Delete or archive** on one still pending sign-off). ## What to do 1. Filter by phase, or search a name, to narrow the book. 2. Press **Declare a commitment** to start one; this needs sign-off access. See [Declare](../commitments/declare). 3. Press a card or a table row to open that commitment's room. 4. Press a Next action door directly from the book: **Sign off** (see [Sign off](../commitments/sign-off)), **Close** (see [Close a commitment](../commitments/close)), or **Release the chase** (see [Release the chase](../commitments/chase-release)). 5. Open a row's own menu for **Archive commitment**, where a seat may. 6. Switch to the table view to work by stage instead of by card. Nothing on this page writes on its own; every act here opens its own page or drawer first. [Selling periods](../commitments/selling-periods) opens from **Products → Selling periods**. Set up product selling dates there, including historical periods, without declaring a commitment. ## When it is empty or failed A book with no commitment reads No commitments yet, with Declare a commitment, or, for someone who cannot sign off: > Declaring one needs sign-off from an admin, or someone named on the Approvals page. An overview filter with nothing in it reads No commitments match this view. An empty stage is not an empty book, and names its stage: > Nothing is inside its window. > Nothing is waiting to open. > Nothing has closed yet. A failed read is never an empty book. It reads as below, with Try again: > The commitments could not be read just now. Where the position read fails, Open to commit reads Did not compute rather than a zero. --- # Commitments: the promise Tightly keeps Source: https://docs.tightly.io/help/commitments/the-commitment Reviewed: 2026-09-07 ## What it is A commitment sets the commercial targets and budget for a defined part of the business. It names a slice of the business (a category, a collection, a sales channel, a lifecycle, a family or a curated collection), a window (a boxed season with a start and an end, or a rolling one that stands until it is amended), and five numbers with a basis each: availability floor, sell-through pace, margin floor, buy envelope and chase reserve. A boxed window may add a sixth, the terminal stock ceiling. It is declared, then signed off, and from then on Tightly defends it: every Monday the verdicts engine measures what traded against what was declared and writes the verdict down. Before a boxed window opens, the agreed book is scored against the commitment as well, because pre-season orders are the season's first truth. Internal comments can belong to the commitment itself, even without an account. Its budget and native decision history remain separate from conversation status. ## How Tightly decides it Tightly never invents a commitment. A planner declares one on Declare, which opens the buying budget and the buying reserve at Tightly's suggestions and leaves the floors and the pace for you to type. Every declared number carries its basis: own history, a look-alike cohort, a prior book, an aggregate, a house convention where nothing can be measured, today's position where no history was archived, or unanchored. Accepting a suggestion and typing over it are both recorded, with the difference. A declaration lands Awaiting a second signature and owns no money until it is signed off. Who may sign is your own setting: with one admin, that admin may sign their own declaration; with more than one, a different admin must sign by default, and money bands can name a role that must sign above an amount. Every declare, amendment, approval, close and retirement is a new version on a record that is never edited; an amendment is a new version with a receipt, never a change to the old one. Two commitments may never own the same dollar in the same window. Closing or retiring frees the money the same instant; nothing is deleted and no stock moves. ## The words on the face | Word | What it means | |---|---| | Awaiting a second signature | Declared, not yet signed; it owns no money and is scored by nothing | | Signed off | Signed; the envelope is armed. Before the season it reads Signed off · book open or Signed off · book not started, from the agreed book | | Proposing | The autonomy rung: the engines put figures forward and a person approves; never a status | | Pre-season, In season, Closed | Where the season sits, read from the window each night | | Continuity | A rolling commitment that has not closed, on the Declaration | | Retired | Closed with no successor named | | The five | The five declared numbers as one row set, each with a standing word | The commitment is read on All commitments (the book), in its own room, on the desk where the buy is worked, and on Home and Today where a decision waits on you. ## What you can do about it Declare, in four steps, with a compile preview that writes nothing. Amend, which is a new version. Sign off, the second signature. Release the chase, spending the reserve against a named winner. Retire, closing a commitment, with or without naming the ones that take over. Close, once a boxed window has passed its end, which scores the season and records where what is left goes. Each act is a version with a receipt, and none of them deletes anything. Ask Tightly inside a commitment answers with that commitment in view. ## Glossary line A commitment is a season's promise: a scope, a window and five declared numbers with a basis each, signed off, owning its own money and scored every week against what traded. --- # The five terms of a plan Source: https://docs.tightly.io/help/commitments/the-five-terms Reviewed: 2026-09-07 ## What it is Under every commitment sits a plan of record: the month by month sheet that says what still has to arrive. It is not the five of the commitment. Availability floor, sell-through pace, margin floor, buy envelope and chase reserve are the promise; the plan's terms are the arithmetic under the promise. The plan has five terms a planner can type, per category per fiscal month: planned sales, markdown, shrink, the closing stock target, and the level the season's first month opens with. One identity closes on them, worked in cents: receipts needed is planned sales plus the month's cost reductions plus the closing stock target, less the level the month opens with. The cost reductions are the planned shrink, or one cost write-off figure where a row was typed that way; a price markdown changes revenue, not the cost of stock, so it is recorded beside the identity and never added to receipts. What is still to place is receipts needed less what is placed for that month, signed, so a month ordered past its need shows as negative. The month is what is typed and signed; the week is what the ledger reads, so each month is phased onto its Sunday weeks and the weeks always sum back to the month. ## How Tightly decides it Every cell says where it came from, in one word. A cell nobody typed reads the forecasting engine's own curve and moves with it. A typed cell stops moving, which is the point of typing it, and keeps the engine's figure at the moment it was typed over, so the override is a number Tightly can score later rather than a disagreement nobody recorded. Seed fills only empty cells and never replaces a typed one: sales from the demand forecast, markdown from last season's own realised rate by position in the season, closing stock from what was counted at the close of last season's months, and a markdown rate or cover target from the company's own declaration where it has made one. Shrink is never seeded, because nothing on the platform measures it. Markdown and shrink are held apart, since one changes revenue and the other the cost of stock; each is typed as money or as a rate of the month's planned sales, with the other form derived and served beside it. A closing target typed as weeks of cover is turned into a level by the planned sales of the weeks that follow, and the conversion is named rather than written into the declared cell. All terms or no figure. A receipts figure worked out from part of the plan would command a buy nobody planned, and markdown typed without shrink leaves the reductions leg unsaid, and the levels telescope, so a missing closing target breaks the chain forward as well as its own month. The reason names the missing terms in the identity's own order. Lock the budget freezes the whole grid as a version; the live grid is the forecast and keeps moving, so the forecast against the budget is a figure and not an impression. ## The words on the face The source word under a cell or under a column's title: > Declared · Demand forecast · Last season · Baseline · Price scenario · Order book The last is the accounts' leg read from what the account has booked, said so rather than passed off as a forecast. The sentences that stand where a figure cannot: > A markdown nobody planned is not a markdown of nothing. > Shrink is not measured anywhere on this platform, so last season cannot supply it. It stays a figure somebody types. > No budget has been locked for this commitment, so there is one plan line here and it is the forecast. A budget is the plan as it stood when somebody signed it. ## What you can do about it On Declare the plan, type a cell or a whole row in one write, press Seed the empty cells to fill what is empty, and Lock the budget when the plan is signed. Clear a cell to have the engine's figure back. Open to buy reads receipts needed and what is still to place off the same terms, the desk's money line carries the plan's need as its own stop, Plan need, and the cash gate draws what is still to place before a purchase order exists. A lock is never undone; a new lock is a new version and the old one stays. ## Glossary line The five terms of a plan are planned sales, markdown, shrink, the closing stock target and the opening level, typed or seeded per category per month with a source word each; the receipts identity closes on them in cents, with markdown recorded beside it rather than added. --- # The ladder: declared, held, open to commit, placed Source: https://docs.tightly.io/help/commitments/the-ladder Reviewed: 2026-09-07 ## What it is The ladder is the live money position of a commitment against its buy envelope, in four terms that tie in cents: declared, held for the chase, open to commit, placed. It is one ladder: the book, the room and the desk's money line read the same position read, so a number checked on one page is the number on the next. Four terms, not three: leaving out the reserve would make open to commit and remaining the same figure under two names. ## How Tightly decides it Every leg is integer cents from the record onward, and each carries both cents and dollars so a reader can re-assert the arithmetic. Declared is the envelope as signed. Held for the chase is the declared reserve less every release against it. Placed is the cost of purchase orders placed against the scope over the window, on the same lines and the same valuation as open to buy's committed figure, split into what has landed and what has not. Open to commit is declared, less held, less placed, and it is signed: once placed spend eats into the reserve it goes negative and is shown, never floored. Two legs sit beside those four. Reserved is drafted purchase order cost, money already written down and not yet placed; free to commit is open to commit less reserved, and it is the leg the verdict is stated on, because a green computed on room that drafts have already claimed is a green a buyer can spend twice. Remaining is declared less placed. For a rolling commitment the ladder is measured over the current fiscal month, since its envelope is a monthly rate. Across the portfolio, shortfalls are summed and never netted against another commitment's surplus: a pool does not lend. A leg that cannot be computed comes back absent with its reason, never zero, and a scope the envelope engine cannot bind reads not computed in the compiler's own words. A failed read is a failed read, never an empty position. ## The words on the face The room's money line stays at the top: Buying budget, Placed, Draft orders, Available to commit and Protected reserve. Draft orders reads native purchase reservations; Available to commit reads native free headroom after those drafts and the protected reserve. Working-copy depths do not replace these figures. A missing leg remains unavailable. The segmented bar appears only when the five known, nonnegative figures reconcile in one currency and period; it does not force an unknown leg to zero. | Word | What it means | |---|---| | Buying budget | The envelope as signed | | Placed | Purchase order cost placed against the scope, with its share of the envelope | | Draft orders | Purchase reservations not yet placed | | Available to commit | Native free headroom after placed orders, drafts and protected reserve | | Protected reserve | The declared reserve less its releases | | Worked buy | The working copy of the buy, at unit cost | | Remaining to plan | The envelope less the reserve less the worked buy | | Not computed | A scope or a leg the read could not bind, with the reason | On All commitments each row carries an Open to commit column, and the head's Envelope and Available figures total the rows in view. A commitment without an envelope reads No envelope declared and measures no money. ## What you can do about it Amend moves the declared rung as a new version. Release the chase moves money from held into open to commit. Add to Bench stages lines that would draw on free to commit without moving it; confirming an order out of Drafted is the one door where a line the ladder cannot fund is refused. Open to buy reads the plan's side of the same money, month by month. ## Glossary line The ladder is a commitment's money position in four terms that tie in cents, declared, held for the chase, open to commit and placed, read from one position read on every page that shows it. --- # Two signatures Source: https://docs.tightly.io/help/commitments/two-signatures Reviewed: 2026-09-07 ## What it is A commitment is declared by someone who holds the Commitments door and armed by a signature. Until it is signed it is a submission: it owns no money, claims no pool, anchors nothing and is scored by nothing. Whether the signer must be a different person is your organisation's own approval policy, with two states and nothing between: a second admin must sign, or a single admin may declare and approve. In either state the signer needs the same door the declarer does, an admin or a member an admin has given the Commitments door; the policy moves only whether they may be the same person. A declaration without its second name is a proposal. ## How Tightly decides it The policy is chosen on Approvals, or settled by measurement at the first approval an organisation ever attempts: one admin on the account means a single approver, more than one means a second admin is required. Nobody has chosen yet is a real state and is never read as the permissive one. Where the admin count cannot be taken, the answer is a second admin, and nothing is stored: a failure must never be the thing that opens a control. The count is your own admins, never Tightly's staff, so a staff seat on your account cannot decide your policy for you. Every approval records which regime signed it, on the commitment's own record. Changing the policy is a change to a control and is recorded with who, when and from what, in the same write as the change, so a change cannot happen without its record. There is no cash gate on the signature: suppliers carry no payment terms at the point of sign off, so a cash figure there would reconcile to nothing. The same-dollar rule is settled at the signature, not at submit, because a pending declaration claims no pool. Where your organisation has money thresholds set, a declaration whose envelope reaches one is signed off by whoever holds the role it names, admins included, and the refusal names that role. ## The words on the face The two policies, as Approvals prints them: > A second admin must sign off a commitment before it goes live. The admin who submits it cannot be the one who approves it. > A single admin can declare a commitment and approve it. Every commitment signed off this way says so on its own record. What a signed commitment's record says about how it was signed: > A second admin signed this off. > The same admin declared and approved this, under this organization's single-approver policy. Under the stricter policy the book's row door refuses the submitter before the press: > You submitted this declaration, so you cannot sign it off. A second org-admin signs it. On the Sign off page the press goes, and the server's refusal lands beside the button: > You declared this; a second admin has to sign it off, or change the policy in settings. The standing words are Awaiting a second signature before, and Signed off after; a pending declaration that is waiting on a person says an admin or a second admin, never a person the policy does not require. The one amber on Approvals sits beside the single approver policy when it is in force on an account with more than one admin, and counts the admins who can each sign alone. ## What you can do about it Sign off on its own page, opened from the room's acts or the book's row door: the declaration reads itself back, a note is the only field and it is optional, and the receipt renders in place as the standing word turns. Retire to withdraw a submission you made. Choose the policy on Approvals under Settings, as an admin; loosening it hides nothing, because every commitment signed under the looser policy names it. The Team page's doors let a named member declare and sign off where the organisation wants that. ## Glossary line Two signatures means a commitment is declared by one holder of the Commitments door and armed by another's signature, unless the organisation's own approval policy says one person may do both, in which case the record says so. --- # The merch plan Source: https://docs.tightly.io/help/finance/buy-plan Reviewed: 2026-09-07 ## The question this page answers What annual sales plan, receipts and cover should the company work towards? ## What you see ### Bring an existing plan into Tightly In Ask Tightly’s attachment menu, choose Finance plan and upload CSV or XLSX. Use one row per category, channel and month with values, not formulas. Review currency, fiscal calendar, mapping and totals before confirming a draft. See Import a Finance plan. ### Import monthly financial data Choose **Upload costs** in **Finance → COGS**. Map categories, brands and scopes; classify months as actual, forecast or unconfirmed. Review totals before saving. Source workspaces preserve undeclared revenue. Saved costs stay separate from actual sales; only confirmed forecast costs can be explicitly applied to existing plan cells. ### Build the company year Commitments draw against the Merch plan, split by category and side. Choose Last year, Last year exactly or a blend. Blend weights must total 100%; 0% excludes a year. Adjust Growth, Margin and Weeks of cover. Hover on Margin and Weeks of cover for last year’s measurements. Declare cover fills a missing cover assumption. Put back reverses one dial move; Back to the pair restores the seed. Declare opens [finance declarations](../finance/declarations). Category table shows last year, growth, sales plan and margin. Expand a category for sides; [Sales performance](../demand/sales) compares them. Review current figures refreshes; Plan actions → Original starting point shows source years. Changed history needs review. Choose **Revenue** or **Units**, then **Performance** or **Working plan**. **Month** opens detail without discarding edits. Performance by **Category** opens on the **Table**, with the column chooser and marked month. **Heat** shows the gap to plan: blue above, amber below with an arrow, shaded by the gap as a share of the cell's plan. **Review sales** keeps category, actual period and all channels; **Ask about variance** opens a draft. **Open forecast workspace** keeps plan channels. Partial outlooks retain DTC forecasts and recorded sales. **Connect approval** shows future totals as unknown. Commercial products use **Review in Connect**; DTC uses **Adjust demand**. Annual figures load before supporting evidence. **Plan actions → Plan lines** opens Gross margin, Markdown, Opening stock, Receipts needed and Closing stock. **Open to buy** opens receipt capacity; **Review outlook** opens annual outlook. Revenue grid shows Annual target, Allocated and Remaining, with budget allocation, Undo and Save draft. Sales performance shows actuals for completed months and outlook for open months. Other measures protect completed months; a dot marks manual changes. See [Open to buy](../finance/open-to-buy). ### Compare commitments In **Performance**, choose **Commitment**. **Top-down vs bottom-up** compares assigned revenue targets with sales outlook and gap. Missing or ambiguous assignments remain unavailable. This comparison is separate from unit planning and survives reopening. Choose **Units** for unit contributions. Unassigned and ambiguous units stay separate; revenue targets are not unit targets. Category views retain their unit scope. In a commitment’s contribution review, **Compare submitted plans** opens independent saved proposals without changing demand or annual targets. See [Connected planning](../commitments/connected-planning) for reuse and reconciliation. **Buying at cost** compares approved receipt budgets, placed orders and budget left. A commitment review shows its declared buying budget, placed and draft orders, reserve and budget left when its full window is selected. Partial cuts do not take the whole envelope. Known periods stay visible when another period lacks approval. **Review budget & receipts** opens the native receipt plan; **Review buy plan** opens the owning buying task. ### Review opening stock Before creation, choose Review opening stock. The planned opening balance at cost uses current stock value, committed receipts and forecast cost of sales through the day before the plan starts. Adjust each category by percentage or amount with a reason. An uncalculated balance needs an explicit amount. Reset adjustments restores the calculation; Refresh projection rereads inputs. Saved opening assumptions do not silently refresh or alter actual inventory. ### Change one category’s target An unpublished plan opens on its working figures. In Allocate annual budget, select a category and an amount or percentage change. Update company target preserves other categories. Redistribute existing budget preserves the company target. Locked and past months stay fixed. An allocation that cannot fit the editable months is refused. Apply allocation changes the working figures; Save draft persists them. ## What to do Publish plan creates and publishes the version. Choose its budget state: Budget not answered, Provisional or Confirmed. Missing names, categories, valid blend weights, growth or margin prevent publication. Lines must reconcile to the company total. **Plan actions** holds **New annual plan** and **Start from targets** for existing plans; otherwise these stay in the header. Review FY… plan opens an existing year. In **Plan lines → Gross margin**, edit a month or category year total. Markdown and stock measures are edited monthly. Move opens an adjustment by direction, amount, months and categories, with a reason and preview. Changes lists edits, Put back and versions. Assumptions beside a version shows its saved values; older versions without a snapshot do not take current settings. Plan actions → Cash impact opens that annual plan’s estimated receipt payments, with a return to the Merch plan. Publishing needs an admin or merchandise-plan approver. Creating and editing need editor access; reading needs a permitted seat. ## When it is empty or failed Failed reads preserve the saved plan and identify unavailable figures. Historical starting points require a completed sales year. Missing change history does not mark figures changed. Months stay read-only until channels load. Performance shows Loading outlook while reading. Unavailable outlooks offer **View plan**. Stored dates and qualifications follow outlooks into detail and Ask. --- # The cash gate Source: https://docs.tightly.io/help/finance/cash-gate Reviewed: 2026-09-07 ## Company funding **Cash & payments** opens approved company funding when available, keeping your existing source choice. Otherwise it opens the cash estimate. The commitment filter sits beside the cash and supplier tabs. **Planned headroom** shows the lowest measured cash above your floor, its date and coverage. Opening cash and the floor sit beside a compact balance chart. A shortfall is cash below the floor. **Funding plan** opens saved funding versions for review. Selected cash actions show a loading status; if an action cannot open, select it again to retry. **Payments** shows contractual obligations, draft reservations and unresolved orders from the same funding inputs as the chart. Review a row for its original currency, outstanding amount, paid amount and credits. **Open order** continues to the purchase order. A reservation records cash planned for a draft order; the order still needs its buying check. **Needs attention** opens unresolved orders in a drawer. **Cash movements** expands dated cash in and out; select a movement for its exact amount, description and Funding plan action. Previous and next controls page through the observed schedule. Selecting a commitment filters payment requirements while keeping company-wide cash context. Filters marked **This page** apply to that payment page. **Partial schedule** means source coverage is incomplete; observed counts are not complete company payment totals. Missing dates, amounts and funding evidence remain unavailable. **Planned cash movements** shows declared inflows, facility draws and expenses such as payroll separately from purchase orders. Select a movement to review the funding plan. These are planning assumptions, not bank transactions. The table icon opens **Daily detail** for the dated cash ladder, including cash in, cash out, reservations and closing balances. ## Cash estimate Choose **Cash estimate**, then **Starts**, and enter **Book opening cash · USD**. Sales, account orders, customer POs and supplier schedules supply expected cash movements. Recorded payments replace matching expected amounts; partial payments retain the unpaid remainder. Double-click cash in or cash out to adjust a month. Choose a category or **Whole book**. Recorded payments cannot be reduced. Closing cash equals opening cash plus incoming cash less outgoing cash. **Save estimate** retains the opening and adjustments by starting month, over twelve calendar months in USD. Finance editors can save; readers can inspect. Selecting a commitment narrows payment requirements without allocating it a separate cash balance. The chart keeps gaps for missing evidence. **Review months** opens adjustments when forecast amounts are unknown. **Actions → Sales & orders** shows coverage and missing dates or amounts, with **Open order** actions. Sales dates estimate collection; they do not prove bank receipts. Failed saves retain edits. **Refresh forecast** keeps adjustments against changed sources. Discard changes to load another saved version. An unconfirmed save retries the same request. Estimates need no funding approval and reserve no money. ## Annual plan cash impact From Buy plan or a receipt-budget row in Open to buy, **Cash impact** follows the annual plan, category and channel. The chart compares monthly receipts with estimated supplier payments. The table retains planned sales, receipts and payments. Payments outside the year appear separately. This estimates supplier payments, not bank cash. **Company cash** returns to the company view. ## Merchandise cash The merchandise view compares the coming buy with cash above the declared floor, using the organisation's 4-5-4 weeks. **Actions → Buy breakdown** separates planned and worked purchases, including amounts outside the window. **Cash in** chooses shipped sales or committed orders where available. **Cash out** chooses placed orders or the worked buy where measured. Supplier terms move expected payment dates; missing terms remain missing. **Balance after the buy** shows the lowest balance and weeks below the floor. **Weeks to review** highlights shortfalls. While slower forecast inputs are pending or failed, verdicts based on them are withheld. The table icon opens **Weekly detail**; **Show cash movements** adds its components. Press a week to review movements in a drawer. **Open trading week** continues to the trading plan. **Review weeks** narrows the table to exceptions; **Show all** restores it. **Supplier actions** groups the buy by supplier and timing. **Review** opens a group. Levers estimate relief without writing. **Trim it** or **Phase it** applies the proposed depth or delivery change to the named commitment. **Open the desk** continues there. ## Declarations and failures **Actions → Declare** edits opening cash and the floor through [Finance declarations](../finance/declarations). Only admins can change these. A zero floor is valid. **Put back** restores the declaration. Missing declarations offer **Declare**. Failed reads offer **Try again**. An unavailable approved plan clears its figures without substituting merchandise estimates. Missing evidence never becomes a zero balance. No action here executes a payment. --- # Finance declarations Source: https://docs.tightly.io/help/finance/declarations Reviewed: 2026-09-07 ## The question this page answers Which company terms have we declared for this fiscal year, and what stays unmeasured or ungraded until we do? ## What you see The page is headed Financial assumptions, at Finance and at Settings, one record at two doors. Eleven company terms are declared once a fiscal year, and seven stock recovery terms beside them; an undeclared term is unknown, never zero. Three of the eleven are what no order can supply: the carrying cost, a percentage a year; the opening cash balance, cash on hand entering the plan year; and the cash floor, the least cash you are willing to hold. The other eight are measurable, and last year's own measurement is offered beside each as a seed: return rate, markdown rate, intake margin, lead time and cover target, which a plan is built on, and hurdle, target turn and target sell through, which a closed buy is graded against. A column of groups runs down the side, opening on Cash limits: - Buy plan costs, the costs included in each buy plan. - Duties & landed costs, reusable estimates for purchase orders and shipments. - Cash limits: the opening cash balance and the cash floor. Where both are on file and the balance is above zero, a meter draws the balance as the track and the floor as its tick; its words are Above the floor and Held by the floor, and the tick is named Cash floor. - Planning assumptions: return rate, markdown rate, intake margin, lead time and cover target. - Investment targets: hurdle, target turn, target sell through and carrying cost. - Stock recovery: markdown recovery rate, carry to next season, markdown in channel, return to vendor, off-price, donate, and carry cost per week. Each term has its label, unit and edit control. Hover or focus the label for its definition, author and last year's measurement. Saved values are shown separately when needed for read-only, missing, changed or invalid states. Save appears beside a changed value; Use measured fills the edit without saving, and the menu carries Clear. Validation stays beside the input. The six groups use one navigation, and a contextual return opens the workspace you came from. ## Declared where they are used The same terms are typed on the pages that need them, through one act, Declare, opening one drawer titled Financial assumptions. [The cash gate](../finance/cash-gate) declares the opening balance and the cash floor; [Investment review](../finance/investment-review) declares the carrying cost and the hurdle; [the buy plan](../finance/buy-plan) opens the opening balance, the cash floor and the carrying cost. The drawer reads back what is on file and who declared it, and prints what becomes true before its one button: > Returned nets carry at this rate, and Per dollar with it. > The cash ladder walks a running balance from the first week on. > Every week is measured against this floor, and a breach is named. Emptying a declared box and saving clears it, and the consequence says so. The receipt renders where the button was, one row per figure written, with Put back beside it. Under an opening balance on file the cash gate's drawer says week not on file. The drawers and the page write the same record, so no two faces can disagree. ## What to do Type a number and Save; each term is saved on its own, never on blur. Clear returns a term to undeclared, which is a different state from a declared zero. Only an admin can change these; any other seat reads the page with the sentence Only an admin can change these. Tightly refuses a figure outside a term's range in its own sentence, and refuses a field the record does not know rather than ignoring it, so nobody believes a misspelt key was stored. Nothing here places an order or edits a commitment. ## When it is empty or failed > This setting did not load The read failed, with Try again beside it. > Reading the declarations. Off Tightly Pro, the Settings address carries no page of its own: a plan the room is not part of reads the [for-sale page](../platform/for-sale-pages) shared with Approvals, with Billing as its one door, and the Finance address shows the Pro refusal. --- # Investment review Source: https://docs.tightly.io/help/finance/investment-review Reviewed: 2026-09-07 ## The question this page answers What did each closed season's buy cost, what came back from it, and how much of that can be trusted? ## What you see The review is hindsight across closed seasons. It reads every commitment with a boxed window that ended before today; a rolling window does not end, so a continuity commitment has no close and cannot be reviewed, and the page says so. Every figure is USD, and a close whose currency Tightly cannot verify as USD shows no money figure rather than a converted one. The evidence view leads with **Capital & margin**, compact tags for included and excluded closes, and the sales cutoff. Each row shows its commitment and window, delivered capital, realised margin, and margin per dollar of delivered capital. **Open** continues to that commitment. Grouped bars compare verified delivered capital and realised margin; return indicators show margin per dollar against the 1× reference. Exact figures remain in the rows, and missing measurements are not drawn as zero. Margin is headed after carry where every row includes carry, before carry where none does, and Margin where the rows differ. Mixed rows retain their carry status. Unverified currency or missing costs remain unavailable; they are never treated as zero or converted. **Closes not included** opens excluded closes and their reasons. **Review** continues to the affected commitment. Exclusions include a missing start date, no eligible delivered lines, missing delivered costs, and no positive delivered cost. Portfolio totals and reallocation are not calculated here. ## How Tightly decides it Capital is delivered purchase order quantity at each line's cost, placed in a close by the expected delivery date. Return is the margin sold inside the window plus the margin sold after it, at current variant cost, less carry. After a window closes, sales of its products count toward the most recently ended window that holds them. Carry is measured only once a carrying-cost rate is declared, and then on the whole committed cost for the whole window, which is the most the buy could have cost to carry; the page says so rather than halving a figure. Nothing is converted between currencies, and current records can change, so this is not frozen history. ## What to do Compare a close's capital, realised margin and return per dollar, then use **Open** to inspect its commitment. Review excluded closes before drawing conclusions. To measure carry, declare a carrying-cost rate in [Finance declarations](../finance/declarations); only an admin can change it. The review writes nothing and never edits a commitment. ## When it is empty or failed > No closes are included in this review. The read succeeded and no close qualified. > The review did not answer. A failed read, with Try again beside it. > Calculating closed-season returns The read is in flight. --- # Confidence as a word Source: https://docs.tightly.io/help/demand/confidence Reviewed: 2026-09-24 ## What confidence is Confidence is always a word and never a percentage. It says how firmly to hold a figure, graded from what the engine stood on rather than from how the figure looks, and it is printed as a word beside the figure or handed back on hover. A forecast line is High, Medium, Low or New. Confidence grades one line before its week is sold; the forecast's track record against what sold is Forecast accuracy, a different thing. ## When forecast confidence is graded The forecasting engine grades every managed variant on each of your own active direct-to-consumer channels on every sync, in the work that follows the sync, and grades every line again each time, including lines with no new sales. The grade reads only your sales and your stock history, so it never depends on which forecast method a line uses. It is on for every plan. ## How a forecast line's confidence is decided A line with fewer than eight weeks of sales history, or fewer than two weeks with any sale, is New: too little to trust any forecast yet. Every other line is scored out of 100 from four things, and the score is never printed: - **Its selling pattern.** A line that sells only now and then, in steady or uneven amounts, loses the most. - **How much and how recently it sells.** Few units a week, or several weeks since the last sale, lowers it; the larger of the two counts, not both. - **Its recent track record.** A rolling check of how far a forecast from the line's own recent sales would have missed; a line with too few checks to judge loses a little. - **A full year of history.** A line with less than 56 weeks loses a little, because it has no last year to learn from. A score of 60 or more is High, 27 or more is Medium, and anything lower is Low. A line on its way down keeps its grade until its score falls more than five points below that grade's threshold, so one quiet week does not flip it. A recent stock-out does not lower the score; it only decides which reason the hover gives. ## The words on the face On Demand forecasting, High and Medium print nothing, because the good case is quiet. Low prints Watch closely and New prints New item, before the flags in the Review cell. Forecast to check leaves only the Watch closely and New item lines, with their count. The reasons under Watch closely are sentences, quoted character for character on hover: > Sales come in irregular bursts, so weekly numbers swing more than most. The monthly total is the steadier read. > This item ran out of stock recently, so sales do not show everything people wanted to buy. The forecast has less to learn from. > Recent forecasts for this item have missed by more than usual. A Low line can carry none of them: low volume, weeks without a sale and a missing year lower the grade without a sentence of their own. Under New item the hover reads: > Only {n} weeks of sales so far. Forecasts firm up after about 8 weeks of selling. or, where the weeks were not counted, only its second sentence. ## Confidence on the other engines Each engine has its own confidence word and never a decimal: a weekly verdict is firm, thin or not measured; a grade's evidence word, measured, reference or brand, is its confidence; a buy line may read lower confidence. Where nobody graded, the cell says so, Not checked or Not measured, never a dash and never a zero. ## What you can do about confidence Treat a Watch closely line as one to check by hand before you buy against it; its hover names why, and a line whose sales come in bursts reads more steadily by month. A New item line firms up as it sells; neither is a fault to fix. If you know something the history does not, type a Manual forecast and save it with a reason; the grade still describes the line's own sales. When the engine that grades is late, its own sentence says so, in the Forecast performance drawer. See [The forecasting engine](../engines/forecasting), [The forecast's words](../demand/forecast-words) and [Forecast accuracy](../engines/forecast-accuracy). ## Glossary line Confidence is a word beside a figure, never a percentage: High, Medium, Low, New for a forecast line; firm, thin, not measured for a verdict. Consumer-demand forecasts do not inherit confidence grades from channel forecasts. An unavailable confidence filter must be cleared before reading that scope. --- # Demand signals Source: https://docs.tightly.io/help/demand/demand-signals Reviewed: 2026-10-07 ## The question this page answers Which products need attention, what evidence explains the change, and what should I do next? ## What you see ::: shot page ::: Demand signals compares traffic, sales and stock. Findings carry their own evidence; a sales acceleration shows units and stock cover rather than an estimated money figure. The head shows **Explore in Ask**, the last nightly run's date and, once the run has loaded, **Flagged lines**. Check the run date before acting. **The six findings** are Hidden gem, Dead stock, Pricing resistance, Ghost revenue, Shelf warmer and Cooling trend. Read one finding's money against another's with care: two of them price stock at what you paid (Dead stock at units on hand times unit cost, Cooling trend at unit cost) and four price demand at what you sell. **The table** holds every flagged line, biggest money first, 25 at a time, with **Show {n} more**. Its columns are Product, Finding, Evidence, Money, Category and a menu. Evidence is two of the finding's own measures, such as views and add-to-carts over 30 days. Category is the line's capital quadrant, one of Winner, Traffic Driver, Sleeper and Bleeder, measured per warehouse: warehouses that disagree read Mixed, with the split on hover, and a line no warehouse has classified reads Not measured. Above the table sit the search (by product, variant or SKU), the Finding and Stock classification menus and the count of matching findings. An address that names a finding, as the link from Home does, narrows the table to that finding. Each line shows a named action, or **Review finding** when more context is needed. The More menu offers Why this line, then the action's door where one exists: Open in Smart Replenishment for Ghost revenue, Find a bundle for Dead stock and Shelf warmer, Open purchase orders for Cooling trend; then **Open the variant**. Pressing a row opens the same drawer. **The drawer** names the product, finding and SKU. **Potential impact** is followed by an evidence grid with each served measure. Missing measures show a quiet marker; focus or hover reveals the recorded reason. The document icons reveal the impact formula and any calculation context, and carry accessible descriptions. **Open the variant** and the finding's available navigation action sit in the footer. **Sales accelerating** identifies a variant selling faster for a particular channel and warehouse, comparing the last seven completed days with the preceding three weeks expressed per week. **Review replenishment** opens the same variant and warehouse. No money estimate is shown for this finding. **Launch running ahead** identifies a new item selling at or above its set multiple of what its plan or launch forecast expected over the same weeks (pace at least the ratio times expected). Whether stock cover is shorter than the supplier lead time is evidence on the row, not a condition for the finding. The evidence grid shows the first sale, units sold against expected, the pace and weekly pace, stock on hand and inbound, cover at the recent pace and the lead time; **Review replenishment** opens the variant. No money estimate is shown for this finding either, and the same sentence reaches the notification menu. **Recorded sales** identifies findings based on imported sales, including NetSuite. Sales and stock findings do not require Google Analytics; connecting GA4 adds traffic-based findings. Nothing is written here. There is no dismiss, snooze or resolve: each run replaces the last, so a finding leaves when the next run stops flagging it. ## What to do 1. Start at the top of the table, where the money is biggest, or choose a **Finding** and optionally a **Stock classification**. 2. Open **Why this line** before you act, to see the evidence behind the money. 3. Use **Open in Smart Replenishment** for Ghost revenue, **Find a bundle** for Dead stock or Shelf warmer, or **Open purchase orders** for Cooling trend. Use **Open the variant** to inspect Pricing resistance or Hidden gem. 4. On Sales accelerating, press **Review replenishment** to check incoming supply before saving a buying decision. 5. Come back after the next run; there is no dismiss, snooze or resolve. ## When it is empty or failed A tenant without the Demand signals capability sees: > Demand signals are not switched on for this tenant. Sales and stock findings remain available without Google Analytics. Connecting Analytics adds traffic evidence after its source has been reviewed and measured; a missing connection does not close this page. When Analytics mappings require review, or source evidence cannot be verified, the header identifies **Native sales and stock** as the evidence for current findings. Retained unreviewed traffic findings stay out of current counts and tables. Review each property's traffic findings, reporting days and price response under **Analytics sources** in Integrations. Once the page is open, the head may say: > Reading the book's signals. A failed read offers Try again: > The signals could not be read. Where the table itself fails, it reads, with Try again: > The lines could not be read. Where the table holds nothing, it reads 0 findings, with one of these on hover and a door to widen it again (Clear the search, All categories, Every finding): > No open demand signals. > No signals match that search. > Nothing to work for {finding}. > No matching finding carries {quadrant}. --- # Bill of materials Source: https://docs.tightly.io/help/product/bills-of-materials Reviewed: 2026-09-07 ## The question this page answers Which variants are made rather than bought, from what, in what run, how long until ready to sell, and where? A bill of materials is the components a product is made from, at an amount per finished unit, made in runs of a batch at one warehouse. Tightly keeps a planning bill, not a factory: it works out what material to buy and when, and no order moves stock. The page is Components, on every plan's rail under Products. ## What you see Components opens on a catalogue of every structure: Product, SKU, Type (Kit or Assembly), Components (a count), Stock held on (Finished product for an assembly, Components for a kit). Pressing an assembly opens the assemblies view; a kit opens bundles. Where its read failed, the catalogue says so in one row: a Components unavailable tag with a Retry icon. Hover or focus the tag for the sentence: > Components could not be loaded. The assemblies view is headed Components, with a door back to the catalogue. There is no verdict sentence. The basis line reads Per finished unit · USD · days. The table is one row per made variant: Made variant (the product's title a door to the product page, the variant a door to its room, and under them the SKU with a copy button), Component cost (Not costed), Builds (what the stock on hand at the making warehouse builds, less what is reserved; No stock reading where a component has none, No materials where the bill is empty), Constraint (the part that binds first, a door to its room; Not on file) and Components (a count, each amount on hover). SKU, Levels, Batch (finished units per run), Ready to sell, days (the longest component lead time plus the preparation days), Warehouse (No warehouse), Product ID, Variant ID and Preparation, days are under Columns. When a read-only bill is present, a State column appears with **Editable**, **Production lock**, **Imported** or **Unverified** tags; where every bill shares one state, the head says it once as All bills, and the column steps aside. Hover or focus the tag for the full source and read-only status. Pressing a row opens its bill level by level. A component may carry its own bill, three levels at most. A Grouping holds no stock and adds no time; its parts tie to the parent. From and Until date a component that replaces another. Same part as names an alternate that pools its stock with the part. ## What to do Add components asks where stock is held: Finished product opens Add components, a page in three steps. Variant picks a Buy-only variant. Components picks the materials, then Usage takes the amount per finished unit, its unit, From and Until, Same part as, and the Batch size. Making shows each material's effective lead time at the making warehouse, takes Additional preparation in days, Manufactured at (the warehouse), an Assembly cost, and whether the bill is a Grouping. The sentence above the button says the variant becomes a Made variant, made at the warehouse you picked, and names any component that is made too. Supplier terms take precedence. When none apply, the material's SKU warehouse default is used before the company default. Review or edit the winning source from the material's Supply view. Save components writes it, and the page then says the variant is a Made variant now; a refusal renders above the button. From a row's menu, Edit opens a drawer, Edit components (never the variant); Duplicate opens Duplicate components with a new variant to pick; Delete component list asks first, saying the variant stops being a made variant and this cannot be undone, and the line under the table says the components are deleted, or Not deleted with the reason. Edit and Delete are offered only on a bill written in Tightly. A bill with an active manufacturing order cannot be changed or deleted, and the menu says so. A bill that would contain itself, or run past three levels, is refused with the served sentence: > A bill of materials cannot contain itself. > Three levels is the most a bill of materials holds. What a bill implies elsewhere: the made variant's replenishment recommendations are exploded through the bill into dated, netted component needs at the making warehouse; a made component's need is sized up to whole batches; a component also sold on its own as a spare carries its own demand and its exploded demand, and the two add. ## When it is empty or failed A first run reads one sentence with the Add components door: > No variant is made yet. A search that matches nothing reads: > Nothing matches that search. Opened from Components for a variant with no assembly, it reads this, with Show all assemblies: > No assembly for this variant. A failed read reads: > Could not load components. On a variant's Structure, a variant made from nothing says so, a component no made variant uses says so, and a failed read of where it is used is stated. --- # Capital quadrants Source: https://docs.tightly.io/help/product/capital-quadrants Reviewed: 2026-09-07 ## What it is Capital quadrants sort every variant at every warehouse into one of four, a Winner, a Traffic Driver, a Sleeper or a Bleeder, by how fast it turns and how much margin it earns. A Winner turns fast at high margin. A Traffic Driver turns fast at low margin: the volume driver. A Sleeper turns slowly at high margin: a hidden gem, or stock held on purpose out of season. A Bleeder turns slowly at low margin and belongs in a buy only to be cleared. The grain is one variant at one warehouse and it is never rolled up: a style can be a Winner in one warehouse and a Sleeper in another, and a quadrant summed over a product would print a judgement nobody measured. ## How Tightly decides it The tag engine classifies after every sync. Velocity is the variant's annual turnover at that warehouse: units sold over the last year against its average stock; margin is its gross margin as a percentage of net sales over the same year. Each is read against a threshold for your industry: the velocity target of that industry's benchmark, and that industry's margin threshold, from forty points for outdoor hardgoods to sixty-five for luxury goods. At or above both is a Winner; fast and thin is a Traffic Driver; slow and rich is a Sleeper; below both is a Bleeder. With no industry declared, nothing is classified at all. A variant with no margin reading or no turnover reading is left out rather than filed: an unmeasured item is never a Bleeder, and the absences travel as their own legs inside the total rather than vanishing from it. Each industry also carries an ideal share of capital across the four quadrants, so a book can be read against the shape its industry expects. The shares are a reference, never a target Tightly hard-codes into a decision, and never a clause of a verdict. ## The words on the face | Word | What it stands on | What it asks | |---|---|---| | Winner | high velocity and high margin | earns depth | | Traffic Driver | high velocity and low margin | drives volume; watch the margin | | Sleeper | low velocity and high margin | a test, or stock held on purpose | | Bleeder | low velocity and low margin | clear it | | Mixed | a style whose variants or warehouses fall in more than one quadrant | read the split on hover | | Not measured | no margin or no turnover reading at this warehouse | nothing is claimed | One spelling each, and singular: a row is one variant at one warehouse, never a crowd, and the set is the four quadrants. The same words print wherever a quadrant does. Never a colour against a colour: the word carries the state, and a Bleeder is a fact, not a declared promise at risk, so it carries no amber. ## What you can do about it On Lite, Essentials and Essentials+ the words print on the Budget. Its Quadrants view is headed Where the money went: one row per quadrant with its Share of spend, the industry's share beside it under Segment, the word over or under at five points or more of drift, then Spend, Revenue, Margin and GMROI, with Not measured where nothing was. With no industry set the Segment column leaves the table and the hover reads No industry set, never a zero. The By month view bands its rows by the same four words. So a buy heavy in Bleeder lines is visible before it lands, and a book thin in Winner lines is visible before the season. On Tightly Pro the words print on the desk. A commitment's assortment is broken down by quadrant at variant and warehouse grain, so the grid's Quadrant column prints Winner, Traffic Driver, Sleeper or Bleeder; Mixed where a style's variants or warehouses fall in more than one, with the split on hover; and Not measured where nothing was. The column leaves when every row prints the same word. There the quadrant is the conviction answer already measured: a Winner earns depth, a Sleeper is a test, a Bleeder is there only to be cleared. Nothing here is pressed. The industry that sets the thresholds is the one you declared, and a quadrant changes through the facts under it: the price, the cost and the rate of sale at that warehouse. ## Glossary line Capital quadrants sort every variant at every warehouse into one of four, a Winner, a Traffic Driver, a Sleeper or a Bleeder, by how fast it turns and how much margin it earns, never rolled up. --- # Families Source: https://docs.tightly.io/help/product/families Reviewed: 2026-09-24 ## The question Families answers Which families exist and how does each vary, what has arrived that is on no product yet, where does each arrival belong, and what was done here? Families is the desk of the [families and attributes engine](../engines/families-and-attributes.md). It is included with Tightly Essentials+ and Tightly Pro; on Essentials the rail marks it for sale with Essentials+; Lite does not carry it. ## Families, joins and arrivals A family is a group of products that vary the same way. An arrival is something that names a product Tightly does not have yet: a listing from your store, or an order line from an account whose code answers to no product. Placing an arrival is a join: a listing joins a family, and an order line lands on a product, a cell of it, or one SKU. Until an order line is placed, its money plans nothing. What a join changes: on Tightly Pro the family's shape is the columns of a Commitment's buy grid; where accounts are graded, a style's family is a rung the account grade reads; and Catalogue can name what a product in a family is missing. ## What you see on Families The head reads Families, the attribution run's as-of and New family. Under it, the figure row counts the order money waiting where there is some, and the order lines unplaced; the families and what waits to be placed are counted in the panes below. The search beside it, Find a name or code, theirs or yours, reads your names and SKUs, families, and each account's own codes; / focuses it. The desk has three panes. - **Families** lists each family by name with how it varies, how many arrivals wait on it, and its Products count. - **The canvas** shows the chosen family: its name, which you press to rename, its shape, or a not set badge with the engine's reason where no shape is declared. The grid is one row per product and one column per cell, each cell a glyph for its state with the SKU on hover. A row can carry {n} outside the shape, Not in your store, or Not on a book yet. Under the grid, Add a product (Add a colourway where the family varies by colour) brings one in, and What happened here opens every act on the family, newest first, or Nothing yet. - **Waiting for a family** lists the arrivals: Arrival, Order money, and Belongs in, the engine's proposed family and cell with its confidence in words: almost certainly, very likely or likely. Where more wait than the tray holds, its head reads 50 of the total. ## What to do on Families - **Place** (Enter) puts the arrival where the engine proposes. Where it proposes nothing, the button is **Start** (N), which starts a family from it. - **Elsewhere** (E) points instead: the canvas reads "Placing {name}. Pick a cell.", the arrows and Tab move the target, Enter lands it and Escape cancels. An order line lands on a product or one of its cells, never a whole family. - A product row's menu offers Move to another family, Make it its own family, Open attributes, and Disconnect for each place an arrival joined it. - R renames the family. S opens How does this family vary?: Colours only, Sizes only, Colours × sizes, One of a kind, or another way you name, with its steps in order. Every product in the family follows it. A shape that would remove a cell carrying order lines or stock is refused, naming the cell, and nothing changes. - New family, or N, opens Start a family: the seed, the first product, how it varies, then Create the family. Start blank begins without a listing. The last act stands in the strip under the desk, with Undo (Ctrl+Z or ⌘Z) when that act can be taken back, for example: > Placed on {product} with the evidence. Money lands tonight. > Disconnected. Kept, and waiting in Arrivals. A refusal never lands in the strip. It renders in the row or drawer it concerns under one word, Not placed, Not disconnected, Not moved, Not made a family, Not saved, Not renamed or Not created, with the served sentence. A viewer reads the desk; a member or an admin acts on it. The desk deletes nothing: a disconnect keeps the record, and folding two catalogue products into one is not an act it performs. ## When Families is empty or failed With no family yet the canvas reads No families yet, with Start the first family. An empty arrivals pane reads Nothing waiting. Where no order book is connected, the pane says so instead: > No order book connected yet. A failed read says one sentence in place of the panes: > The families read didn’t answer. A search that fails reads Search unavailable, with Retry; one that finds nothing reads No matches; a hit with nowhere to open reads not in a family yet. --- # Health and tags Source: https://docs.tightly.io/help/product/health-and-tags Reviewed: 2026-09-07 ## What it is Health is the replenishment engine's word on one variant at one warehouse: whether the stock there is Covered, holds more than it can sell, which reads Overstocked, or is out or due a reorder, which reads Needs ordering; where nobody measured it, Not measured. Tags are the words the tag engine puts on a variant at a warehouse for how it sells and how it is stocked: high growth, declining, consistent seller, not selling, stocked out, understocked, overstocked. Healthy is quiet: a covered line carries no colour, and on Stock on hand no mark at all, because stock that needs no decision is a reason to say nothing about it. ## How Tightly decides it Health comes from the replenishment simulation that runs after every sync. A warehouse with nothing on hand is a stockout. A variant whose first reorder lies more than three replenishment cycles away holds more than it can sell. A variant the simulation would reorder today, because its stock at lead time falls under its safety stock, is understocked. Everything else is normal, and so is a variant with no sales to simulate, whatever it holds. Stockout and understocked read Needs ordering; overstock reads Overstocked; normal reads Covered. Cover itself is the days the sellable stock on hand lasts against the forecast, walked day by day; where the stock outlasts the forecast, the figure is a floor. Tags are three readings over the same grain, merged. Growth reads the last twenty-six weeks of sales: a significant rise is high growth; a significant fall that is still falling in the most recent weeks is declining, so a season's normal come-down is not called a decline; a steady seller with low variation and few empty weeks is a consistent seller, the bar set from your own catalogue where it is large enough to set one, and a fixed bar otherwise. Stock reads the health above: stocked out where nothing is available, understocked and overstocked from the health word. Not selling is a variant at a warehouse with no net units sold in the last thirty-one days, whatever it holds. The lexicon also holds new arrival, discontinued and supplier issues; the tag engine's three readings do not write them. ## The words on the face | On the face | Where it prints | What it says | |---|---|---| | Covered | Health on Stock on hand, the product page, the variant room | cover at this warehouse needs no decision | | Overstocked | the same | more on hand than the rate of sale will clear | | Needs ordering | the same | out, or due a reorder now | | Not measured | the same | no cover reading at this warehouse | | high growth, declining, consistent seller | Tags | how the variant's sales have moved over twenty-six weeks | | not selling, stocked out, understocked, overstocked | Tags | how the variant is stocked at this warehouse | Health is a shape as well as a word: a ring for Overstocked and a diamond for Needs ordering, in ink, so the state survives without colour. The product page and the variant room mark Covered with a plain filled dot; Not measured carries no mark. Amber never paints health: a stockout is a fact, not a declared promise at risk. Caution and critical are the wire's names for Overstocked and Needs ordering and never print on a face. ## What you can do about it Filter Stock on hand by Health or by Tags and open the rows. The product page's head counts the lines that need ordering and offers Work the reorder; the variant room shows the days of cover per warehouse, the day a reorder lands, and the reorder the engine proposes, with Raise with {supplier} adding it to the Bench. Managed, on the product page and in the variant room, puts a variant in or out of replenishment. A health reading you disagree with is changed through the facts under it: the supplier, its lead time, the replenishment frequency, and the stock the connector reports. ## Glossary line Health: the replenishment engine's word on one variant at one warehouse, Covered, Overstocked or Needs ordering; healthy is quiet. Tag: a word the tag engine puts on a variant at a warehouse for how it sells and how it is stocked: high growth, declining, consistent seller, not selling, stocked out, understocked, overstocked. --- # Movements Source: https://docs.tightly.io/help/product/movements Reviewed: 2026-09-07 ## The question this page answers What moved stock, across the book or at one product and warehouse, and which document caused each change? ## What you see Movements is the ledger under Stock on hand: every plus and minus of stock, newest first, each with the document that caused it. It is Stock on hand's third reading, beside Now and Period end. Reached by the Movements row under Inventory it reads every product at every warehouse; reached by Open the ledger in a stock figure's position it reads that product at that warehouse, and from a document it reads every movement that document made. The head reads Movements. The figure row carries the full filtered movement count, then In, Out and Physical movement net over the same filtered scope when supplied by the native read. Earlier API responses explicitly label these amounts This page; they are not whole-ledger totals. Earliest uses the same scope as the amounts. Each row is When, Movement, Change, Product and SKU (where the reading is not one product), the warehouse (where it is not one warehouse), Document (where it is not one document), Source, Cost and Landed cost. Movement is one of nine words: Opening, Received, Shipped, Returned, Adjusted, Transferred out, Transferred in, Counted, Corrected, with reversal beside a movement that reverses another. Document names what caused it: Opening balance, Delivery, Transfer delivery, Stocktake, Fulfilment request, Channel shipment, Return, Exception, Sync run, Build, Quarantine, Transfer or Outbound stock. Where a movement carries evidence, such as the source's figure beside the ledger's sum, hovering Change shows it. A cost prints in its own currency; Not measured stands where nobody took a landed cost and Not costed where units moved with no cost on file, and never a zero in place of either. A document name opens its recorded purchase order, transfer, stocktake or sales order when the ledger supplies that source record. A delivery opens its parent order; unresolved documents remain plain labels. Existing page permissions still apply. A reading longer than one page pages. The movement totals count physical units. Period end reports available stock; these are different quantity bases. Product/SKU, warehouse, movement kind and document kind narrow the reading, and each change asks the ledger again. Date range accepts exact UTC instants: From and Through both include their exact instants, matching the native ledger filter. A product, warehouse or document the reading is narrowed to shows as a chip that can be removed; with none, it reads the whole ledger. ## What to do Nothing is written here. The ledger is added to and never edited or deleted: every change to stock is a movement, and a correction is a new movement, not a change to an old one. Open the position opens the pair's position, and pressing a row's product opens that product's position; from the position, Open the ledger opens this reading narrowed to the pair. Back to the grid returns to Now. ## When it is empty or failed > No movement on the ledger for this reading. > The ledger read didn’t answer. The failed read offers Try again; the empty one offers Back to the grid. The stock position drawer keeps the product and variant in its heading and names the selected warehouse underneath, including while its figures are loading. --- # Catalogue Source: https://docs.tightly.io/help/product/products Reviewed: 2026-09-07 ## The question this page answers What is in my catalogue, what is each product missing for planning and for its family, and which values are mine rather than the connector's? The Catalogue is the Product zone's front door. It is included with Tightly Essentials+ and Tightly Pro; on Essentials the rail marks it for sale with Essentials+; on Lite it does not appear. ## What you see The head is the page's name, Catalogue, with Explore in Ask, Import and New product beside it. Under it, the attribution engine speaks one sentence only when its state is one you would act on. The figure row carries the counting: Products, Variants and No family, the last the Families desk's own total over the whole catalogue. The basis line reads Cost · Price · USD, adding CBM and kg when a cube or weight column is on screen. The controls are one row. Two views ride as a segmented control: All, and Missing attributes with its count. In All, a second control picks the Products or Variants grain, and a select groups it by product, category or collection. A search matches title, id or SKU. Filters adds pills for Brand, Vendor, Department (where your products carry one), Lifecycle, Purchasing, Category, Sales channel, Unit cost and Sell price. Then the column picker, Export and Gallery or Table. The page opens on Gallery: one card per product with its picture, its variant count and its planning gaps, paged with Previous and Next. Lifecycle defaults to Active and Pre-season; include archived products to review or restore them. Purchasing columns and filters distinguish Enabled, Partially held and Held products; individual SKUs are Enabled or Held. Manage holds in product Planning or SKU Supply; forecasts and stock remain available. The Table, products grain, opens on Product (with its category under the name), Variants, Planning gaps, Unit cost and Sell price. The column picker adds Brand, Vendor (No vendor), Department, Category (Not classified), Lifecycle (Active, Pre-season, Discontinued), Price band, Replenishment (Continuity or Seasonal), Selling window, Size curve, Channels and Last edited (Never edited), and can switch on Description, Assets, Product ID, Weight, dimensions, Country, Carton quantity and Cube. The variants grain opens on Product, Variant, SKU, Unit cost and Sell price; the picker adds UPC, EAN, Brand, Vendor, Department, Category, Lifecycle, GTIN, Carton quantity, Cube, Weight, HS code, Unit cost, Sell price, Channels and Last edited, with Demand item beside the SKU. Missing attributes is the same table narrowed to the products whose family asks for something they do not carry, with three columns after Product: Family (No family set where none is declared), Family gaps (None, a count, or nothing can be called missing without a family) and Yours, the count of fields you own rather than the connector. ## What to do Edit cells in place, then Save changes or Discard. A refusal says Not saved. Every cell unchanged. Undo is offered unless the product’s variants had differing prices. Typing a price band, a size curve or a selling window declares it, and the engine's autofill never overwrites a declared value. Select rows for the bulk bar: Select all, Edit fields (Lifecycle, Vendor, Unit cost and Sell price on products; Lifecycle, Unit cost, Sell price and Channels on variants; set to, raise by % or lower by %), Archive in Tightly, Restore in Tightly, Edit customs codes for up to 100 rows, and on variants Plan as one item. Export downloads the view. Press a row to open its product page; returning preserves the view. Attributes shows values and owners: You, Connector's or Not in this family. Enter or blur commits; Escape abandons. Unchanged values write nothing. Unreadable numbers stay with Not a number in your format. Pending updates say not on your storefront yet. Hand back to the connector relinquishes a value you own. Refusals say Not saved. The field stands. or Not handed back. Tightly owns it. Arrow keys move between products. New product opens a drawer that needs a title, a vendor and a category, and opens the new product's page once created. New variant picks its parent first and says what the variant takes from it: > The new variant inherits the parent's brand, category and descriptions. A SKU already in use is refused on the field: > That SKU is already taken. Doors out: a product's name in the Table, or a Gallery card, opens the product page; while arrivals wait to be placed, a Families door in the controls opens the desk; Import opens Data. ## When it is empty or failed A first run reads No products, with Import from CSV and Add a single product. A failed table reads: > The catalogue read didn't answer. A failed queue reads The queue did not answer., and a failed drawer reads The form did not answer.: a failed read, not a finished queue or an empty product. Filters that match nothing keep the toolbar: > No products match these filters. A queue with nothing waiting reads No product is missing attributes. The page's as-of carries the attribution engine's last run; its states, Stale, Failed and the rest, are the families and attributes engine's words. Archive in Tightly uses the selection review drawer. It excludes the selected products or variants from active planning and future calculations while preserving their history. The exclusion survives source sync and leaves NetSuite unchanged. Restore in Tightly, in the selection bar's menu, reverses the local exclusion. --- # Stock on hand Source: https://docs.tightly.io/help/product/stock-on-hand Reviewed: 2026-09-07 ## The question this page answers This is the classic table behind Inventory. What stock is physically held, by variant and warehouse, how many days of cover does it give, what money rides it, and is the data ready to replenish? The page is open on every plan, and a stock figure opens its position. ## What you see The head offers Transfer recommendations for one warehouse and Explore in Ask. Figures show Stock at cost, Incoming at cost and Expected revenue. Not ready to replenish opens missing-field details. Cover groups rows into 0, 1 to 14, 15 to 30 and 31+ days. Now, Period end and Movements are Inventory rows. Controls stand in one row: Product, Category or Collection; a warehouse select; a search; Filters as pills (Missing fields, Lifecycle, Managed, Suppliers, Default supplier, Categories, Stock on hand, warehouses, Tags, Health, Unit cost, Sell price, Weeks of cover, Lead time, Date published, Stocked out and more); View (Variants or Products, By warehouse or Combined, Compare warehouses); Columns; Export. The table is one row per variant and warehouse, or one per product. The standing columns are Product, Variant, SKU (No SKU), Warehouse (All warehouses when combined), Health (Covered, Overstocked, Needs ordering, or Not measured), Available to sell (stock on hand less what is reserved; Stock not read), Stock at cost (Not valued), Cover (days, the tightest warehouse when combined; Cover not read), Last stockout date, Velocity 30d, On order, Next arrival (Nothing on the way), Supplier and Lead time. Columns adds Unit cost, Sell price, Completeness, Incoming at cost, Expected revenue, Replenishment frequency, Weeks of cover, Stock on hand, MOQ, Batch size, Lifecycle, Managed, Class, Size pack and more. Incoming at cost is on order at unit cost; Expected revenue is Velocity 30d over 90 days at the sell price. The foot totals every money column on the grid for the rows in front of you. At period end the page reads the stock archive instead: per retail week or month, the opening and closing units, the change, and stock at cost, split by category. ## What to do Edit a cell in place: Supplier, Lead time, Unit cost, Sell price, MOQ, Batch size, Reserved quantity and your custom fields. Changed cells collect into a save bar with Save changes and Discard; the result reads Saved, or the served refusal, else Not saved; no cell changed. Select rows for the bulk bar. Add to Bench stages the selected lines at one quantity for all; it is disabled while any selected row has no supplier, naming them on hover, and its receipt says how many lines were added to the Bench and that this places no order. Edit columns opens a drawer for Unit cost, Sell price, Supplier, MOQ, Lead time, Managed, Batch size and Replenishment frequency; the columns that need a supplier refuse until every selected row has one. Export downloads the view and the button then reads Exported. The readiness drawer counts variants missing required fields. Choose a field to filter the grid, or **Edit data** for source controls. An unavailable report offers **Retry** and disables field-dependent actions. A known report with no missing fields shows the clear state. Available to sell and On order open the variant's position at that warehouse. Pressing a row opens its drawer, with Open the variant and Open the product. ## Compare the same variants across warehouses In the current stock view, **Compare warehouses** places variants in rows and the selected warehouses in columns. The cells show **Source available** units: availability reported by the stock source; it is not the position drawer's available-to-promise calculation. A missing reading stays unmeasured, while a measured zero stays zero. This makes it possible to see, for example, Small and Medium missing in one warehouse even when Large or another warehouse holds stock. Press a measured cell to open that exact variant and warehouse's position. **Open ledger** continues with the same pair selected. Switch Compare warehouses off to return to the usual stock table. ## When it is empty or failed A first run reads: > No inventory received A view that matches nothing keeps the toolbar, with Clear filters and search: > No rows match this view. A failed table read is stated, with Try again: > The stock read didn’t answer. The figure row waits behind a skeleton while its read is out; a pending count is never a zero. ## Floor and stockroom Open **Floor & stockroom** from Inventory and choose a store. Store total stays separate from its floor and stockroom breakdown. A breakdown that is missing or needs a recount says so rather than reading zero. Counts managed by a connected source stay owned by that source. Users with write access can record a count or move units between the floor and stockroom when the store's counts allow it. A move keeps the store total unchanged. History shows counts and moves; Reverse move records a move that names the one it reverses. This is separate from transfers between locations. **Explore in Ask** carries the selected store, the rows on screen and the current action. ## Physical stock and dated supply Incoming supply is separate from stock physically received. Recording a supplier date or a customer promise does not increase on-hand stock. Damaged units held for inspection do not become sellable until a reviewed release records their disposition. Receiving and inspection history remain available from the linked supply order. --- # The position Source: https://docs.tightly.io/help/product/the-position Reviewed: 2026-09-26 ## The question this page answers Behind one stock figure, what is on hand, what is held, what is coming, and what can be promised? ## What you see ::: shot page ::: On Stock on hand, Available to sell and On order are doors: pressing either opens the position of that variant at that warehouse, in a drawer beside the grid. On a row combined across warehouses the position is summed over every warehouse, and a table names what each one holds: on hand, reserved, expected inbound and available to promise. The drawer is a ladder, and every line of it is the server's own arithmetic; the page adds nothing up. On hand stands first, with what the figure is at one warehouse: Counted at the warehouse, Sellable count, or Summed from the ledger. Under it, what is firmly held and why, each with the document behind it where there is one: Reserved (units held for an order), Held for the order book, Held for the forecast, Held by hand, and Committed by a named source for units that source has promised to its own open orders. Available to sell is on hand less what is firmly held. Expected inbound follows, one line per document with the day it is due, then Returns expected, and Available to promise closes the ladder: on hand, less what is firmly held, plus expected inbound and returns expected. A document on the ladder is a door to it. Beside the ladder stand up to three facts. Reconciled says when the nightly sweep last tied this pair to the ledger, and reads Not reconciled yet where it never has. Seen, not booked says what the sweep has seen and not yet booked as a correction. Reserved, not firm counts a hold that is a plan rather than a promise; it is stated, and never subtracted. Under them, Movements lists the last twenty movements behind the on hand figure, Movement, Change, Cost and Landed cost, each line naming its document, kind and when it happened, and the drawer's one sentence says how many movements the figure ties to, and since when where every one of them is in hand. ## What to do 1. Press a **Stock on hand**, **Available to sell** or **On order** figure to open the drawer. 2. Press a document on the ladder to open it. 3. Press **Open the ledger** to read every movement the on hand figure is made of, narrowed to this variant at this warehouse. Unknown warehouse quantities appear as a dash. A measured zero remains zero; an unknown reservation does not mean stock is unreserved. The drawer is for reading; nothing is written from it. ## When it fails > This position didn’t answer. A read that did not answer offers nothing, and Open the ledger is disabled; Movements is still a press away on the page's own control. The stock position drawer keeps the product and variant in its heading and names the selected warehouse underneath, including while its figures are loading. ## Supplier agreement and incoming stock Expected inbound uses the supplier’s current accepted quantity, including an accepted reduction, less units already received. A stale supplier answer does not establish a current agreement. A planner’s arrival override does not change what the supplier accepted. Opening a stock position is still a read; assigning dated incoming units to a customer is a separate reviewed action where that capability is enabled. --- # Draft a purchase order Source: https://docs.tightly.io/help/supply/act-draft-a-purchase-order Reviewed: 2026-09-07 ## What it writes Drafting a purchase order creates one order per supplier and warehouse from a set of lines and lands it Drafted. A drafted order is on the book: it has not been sent, nobody has been ordered anything, and it is left out of the On order figure the month's open to buy is read against. The consuming step comes later, when a person confirms the order on its own page. Three doors draft. The Bench's Create purchase orders converts staged lines, clearing them from the Bench as they become orders. A recommendation from the replenishment engine, on Smart Replenishment on Lite and Essentials or by Add to Bench from the desk on Pro, or a proposed move, drafts through the Bench or the Draft transfers drawer. And Ask Tightly may draft a purchase order from a conversation, because this is one of the few writes it is allowed: its own words for the act are that it drafts a purchase order, it lands Drafted, and nobody is ordered anything. ## Who may press it A writing seat. A read-only seat can ask Ask Tightly about an order and sees the consequence, and performs no act. On the Bench and on the desk's reorder wall the page performs the act and Ask only proposes it: an Ask chip that names this act there hands the press to the page's own button. Anywhere else in a conversation, Ask performs it after you confirm in the chat. Ask is refused every write not on its allowlist, so it cannot confirm, send, cancel or delete an order for you; those are the order page's. ## What you see On the Bench, before the one button, the drawer's consequence line counts the draft orders it creates and the Bench lines it clears, and says the supplier issue is separate. Pressing it shows the button loading, then the receipt replaces the head: the money drafted across how many purchase orders, that none is with a supplier yet, and when the last of them lands, with the door to the orders. Nothing pops up and nothing navigates away. In a conversation the chip carries the supplier, the warehouse and the lines; Ask reads back the drafted order's name and offers its door. The order opens on the Drafted word and its first stop on the lifecycle track. ## What to do The way back is on the drafted order: Delete removes it and its lines for good, after asking: > Delete {order}? It and its line items are removed for good. Or leave it drafted and edit it: lines can be added, quantities and costs changed, and the delivery address set while the order is Drafted. Cancelling a draft is also offered; reactivating a cancelled order puts it back to Drafted. The lines that became the order have left the Bench. To stage them again, add them from the replenishment engine's recommendations or the supplier's catalog. ## Refusals you may read A conversion whose prospective orders would breach a supplier's brackets is refused before anything is created, and the Bench renders the server's sentence with one row per unmet constraint, naming the order, the constraint and what it is short by. The sentence counts the orders and names each rule that failed, for example: > {n} purchase order(s) cannot be placed: {m} order(s) are under their supplier's minimum order value. The other rules read {m} line(s) are under their minimum order quantity, {m} line(s) are not a whole multiple of their batch size, and {m} line(s) have no unit cost on file; where no quantity change can reach a minimum because no line carries a cost above zero, a second sentence says so. Fix the order in Review order, or leave it on the Bench and convert the rest. When the write fails for a reason the server did not name, the Bench reads The purchase orders were not created. From Ask, a chip naming an act that is not on the allowlist is demoted to a sentence and nothing is called; the page performs those acts. ## Edit a draft payment schedule Ask can also prepare a payment-schedule change for an existing draft order, for a seat with Buy editing permission. Review the payment percentages, timing anchors and offsets before confirming. An estimated invoice date is an explicit input; arrival is not treated as invoicing. The change uses the order's current revision. If the order changed, review the latest terms before trying again. Open Terms & payments on the order to see the saved schedule and expected cash dates. Approved or reconciled terms require the amendment workflow. Saving terms does not approve or send the order, pay the supplier or reconcile a bank account. --- # Lead time Source: https://docs.tightly.io/help/supply/lead-time Reviewed: 2026-09-07 ## What it is Lead time is how long a supplier takes, in days, from the day you order to the day the goods land at one of your warehouses. It is the figure the replenishment engine walks against: a line is short when its stock runs out before an order placed today could arrive, so the lead time decides when Tightly asks you to order. ## How Tightly decides it For a NetSuite SKU with a saved supplier/subsidiary lead time, the matching warehouse uses that scoped value first. An explicitly unknown scoped value stays unknown; it does not inherit a company default. Without that scoped field, lead time resolves in this order: this variant at this supplier and warehouse, then this supplier at this warehouse, then this variant at this supplier, then the supplier's own single figure, then the SKU warehouse default where available, then a source-owned SKU default, and last your company default. The SKU warehouse default uses a Tightly override first, otherwise its preserved imported value. Your default is the number Tightly assumes where nothing more specific is on record; it is the Default lead time in Settings › Planning. A supplier's lead time is per warehouse: the same supplier can take three weeks to one warehouse and five to another, so the supplier faces read the per-warehouse rows, each one the supplier's own figure for that warehouse or else your default. A variant's lead time at a supplier is the most specific level, for the case where one product ships differently from the rest of that supplier's catalog. The source word, never the number, says which level a figure came from. A figure that is your default carries the words from system; in Variant suppliers a supplier's own figure reads this supplier and a variant's reads this variant at this supplier. Where several warehouses carry a value, a face prints the range as the shortest and the longest figure, as in 21 to 35 days, or one figure when they agree, with each warehouse and its days on hover. Lead time also sets how far the engine walks. Each line is walked at least 120 days, and where its forecast reaches further, past its own lead time plus your cadence, so a long sea import is covered past the standing horizons. On Lite and Essentials, Smart Replenishment offers one more horizon when your longest lead time runs past the standing ones. A supplier's own consistency, not only its average, feeds the buffer the replenishment engine holds: a supplier whose delivery days swing widely earns a deeper safety stock than one who always lands on schedule for the same average lead time. That spread is worked out from the supplier's own purchase order receipts over the last two years, order date to delivery; a supplier with fewer than five counted receipts, or a transfer between your own warehouses, adds no spread to the buffer, because nothing was measured. ## The words on the face | Word | Where | What it means | |---|---|---| | a range in days | Suppliers, The supplier, its Catalog, Variant suppliers | The shortest and the longest figure over the warehouses that carry a value; one figure when they agree | | from system | under a figure, and in a lane of the supplier's Edit drawer | Your default stands in; nobody has given this supplier's own | | this supplier | Variant suppliers, Source | The supplier's own figure for that warehouse | | this variant at this supplier | Variant suppliers, Source | An override for one variant | | Not set | Variant suppliers; the hover on a dash in Suppliers | No level carries a value | | No lead time | Suppliers, the figure row | Suppliers whose own single lead time is empty, whatever their warehouse rows show | | Lead time not set for {n} variants | The supplier, Needs a person | Variants at this supplier stocked in a warehouse where no level carries a value, so your default stands in | ## What you can do about it Set the default in Settings › Planning. Set a supplier's lead time by warehouse in the supplier's Edit drawer: a lane reading From system takes Set to give it its own days, and Clear drops a lane's own days so the default applies again; only the lanes you change are saved and the rest are unchanged. Set a variant's lead time at a supplier in Variant suppliers, the same way. On the supplier's record, Needs a person counts the variants as Lead time not set for so many variants, with Set as its door to the Catalog narrowed to them. A refusal names your warehouses in the server's words: > Locations do not exist: {ids} ## Glossary line Lead time is how long a supplier takes, from the most specific level on record. SKU warehouse defaults display their source as **SKU warehouse default**; an imported item-wide fallback displays **SKU default** and is not a supplier override. Editing freight alone preserves that inherited lead time; setting an explicit supplier lead time remains a separate change. Open **Supply → Lead times** on a SKU to search and page through its warehouse defaults. The information control shows the effective source and the preserved imported value. Edit the SKU warehouse default in its own scope; clearing it restores inheritance. Scoped supplier/subsidiary values remain separate in supplier CSV exports. A blank shared variant field does not erase those scoped terms, and downloading or reimporting the shared field does not copy one subsidiary’s lead time to another. --- # Order status words Source: https://docs.tightly.io/help/supply/order-status-words Reviewed: 2026-09-07 ## What it is Every order in the Buy book stands in one of seven words: Drafted, Confirmed, In production, Shipped, Delivered, Completed or Cancelled. An eighth word, Suggested, marks a purchase order Tightly drafted and nobody has approved yet. The same words read on the book, the order's badge, its lifecycle track, the filter chips and the supplier's Orders tab, one spelling everywhere. ## How Tightly decides it The status is served with the order and folded to one word. An order the wire calls requested reads Drafted, because nothing has been confirmed either way; an order partly or fully shipped reads Shipped, and partly or fully delivered reads Delivered, because the units booked in are a figure on the order and not a second status. Completed is a flag a person sets, and it outranks the word: a delivered order marked completed reads Completed. Suggested is the order's draft flag and outranks the rest; on the purchase order book and record only Cancelled outranks it. Purchase orders and transfer orders move Drafted, Confirmed, Shipped, Delivered; a drafted order may also go straight to Shipped. Manufacturing orders move Drafted, Confirmed, In production, Completed. The server accepts Cancel from any step, though the purchase order page offers it only before an order is delivered or completed, and a manufacturing order's page only before production starts. A cancelled order reactivates only to Drafted, never to where it had got to. An order on hold refuses every step but Cancel until the hold is released. Every other move is refused by the server in its own words. Each step locks something. Confirmed locks unit costs and the product list and starts the order counting as on order; Confirm an order explains it. Shipped books nothing in. Delivered books every outstanding unit as a final delivery and moves stock by your sync settings. Completed closes the order to further deliveries. Cancelled excludes the order from incoming stock. On a make order, In production says the raw materials are on hand and the finished good is being built. ## The words on the face | Word | What is true | |---|---| | Suggested | Tightly drafted it; approve to make it a draft, or ignore to remove it | | Drafted | Created and editable; nothing sent, nothing on order | | Confirmed | Unit costs and the product list locked; counted as on order | | In production | A make order being built; its materials are allocated | | Shipped | The supplier has sent the goods; what arrives is recorded under Deliveries | | Delivered | Every outstanding unit booked in | | Completed | Closed to further deliveries; on a make order, made | | Cancelled | Stopped; excluded from incoming stock; reactivates to Drafted | Beside the word, the Delivery column reads Agreed on confirmation while an order is Drafted or Suggested, and a date with the word late when the order is behind it and not yet delivered. A second word on Status names a supplier's update: date moved, wants to cancel, shipped, quantity changed. ## What you can do about it The next stop on the order's lifecycle track is the one button, and each step states its consequence before you press it, in a popover, or on Tightly Pro in a drawer for Mark as confirmed. Cancel, from the order or the row menu, asks first. Reactivate puts a cancelled order back to Drafted. Mark as completed and Reopen set and clear the completed flag once units are delivered. Approve and Ignore act on a suggested order. A step the order cannot take is refused: > Invalid status transition from {from} to {to} for order type {type} Placed purchase orders also show Order amendments in Actions. Use it to review a proposed change; opening it does not change the order’s lifecycle status. ## Glossary line An order stands in one of seven words from Drafted to Completed or Cancelled; Suggested is an order Tightly drafted and nobody has approved. --- # Size pack Source: https://docs.tightly.io/help/supply/size-pack Reviewed: 2026-09-07 ## What it is A size pack is the sizes a line ships in, as one unit. A supplier that sells a style only as a carton of one small, two medium, two large and one extra large has a size pack with that ratio, and an order for that style is a number of whole packs, not a number of each size. The pack is the supplier's: it lives on the supplier's record and governs orders drafted to that supplier. ## How Tightly decides it A size pack is created on the supplier's Catalog, in the Size packs segment: choose this supplier's buy-only variants, set the ratio per variant, and review. The create drawer will not add a variant already in another active pack, though the server accepts packs that share a variant. On the Bench a line under a pack is checked against the pack's ratio rather than its MOQ and batch, and a quantity off the ratio gets a suggested adjustment; on the supplier's Catalog, MOQ and batch read 1 for a variant in a pack. The pack reaches three places. On the Bench a Size pack column shows a line's pack as its ratio, and its Fit reads Size pack incomplete until the ratio is whole. In the replenishment engine's grid, Smart Replenishment on Lite and Essentials, the MOQ cell reads Size pack under a pack. In the order's Where it goes section, and on the commitment's Allocation wall on Pro, a send to a warehouse is floored to the pack, so a warehouse needing fewer units than one pack gets none and the remainder is shown as having nowhere to go rather than shared out. ## The words on the face | Word | Where | What it means | |---|---|---| | Size pack | Smart Replenishment MOQ on Lite and Essentials | A pack governs this line; its minimum is one pack | | 1 · size pack | Variant suppliers, Stock on hand | The pack sets this variant's MOQ and batch at one pack | | Size pack incomplete | The Bench, Fit and Standing | The line's units do not make whole packs | | Size pack, a figure | the order's Where it goes, a column | The pack the send was floored to, in units; Not declared where no pack is on file | | size pack of {n} | the Allocation wall on Pro, under Send | The send was floored to packs of that many units; pack unknown where none is on file | | in another pack | the pack's create drawer | The variant already belongs to an active pack | | None | the variant's page, Size pack | No pack governs this variant | ## What you can do about it Create, edit or delete a pack on the supplier's Catalog. The create drawer says its consequence at each step: each complete pack holds so many units in this ratio, and it is applied when drafting orders, with a suggested adjustment for quantities that do not match. Delete asks first: > Delete this size pack? The rule will no longer be checked when drafting orders. Add to Bench by packs from the same segment: a number of packs becomes each variant's units by the ratio. On the Bench, Apply size pack ratios in Review order completes an incomplete pack by drafting the missing variants. ## Glossary line A size pack is the sizes a line ships in, as one unit. --- # The supplier Source: https://docs.tightly.io/help/supply/supplier Reviewed: 2026-09-07 ## The question this page answers How reliable is this supplier, on what terms do we buy from them, what needs my attention, what do they supply and in what packs, and what is on order with them? ## What you see The supplier is one record with a head, a row of facts, five tabs and a card beside them for the places it serves. In the retailer chair the record is the vendor. The head names the supplier, with the word archived when it is, and a way back to Suppliers. Under it a tag says the currency orders are placed in, Orders in USD, or No currency in amber with a Set currency button that opens Edit. The figures show only what is known: Open orders with their units, Lead time as the range across your warehouses (with From system when it is the organisation's default), Minimum order, and On time and In full over the supplier's order lines due in the last twelve months. What is not on record collapses into one row of dashed tags, such as No minimum order or On time and in full not measured. An archived record adds one line: Out of every menu and not syncing, history kept. What needs a person is one button in the head, Needs a person with its count, which opens a drawer grouped into Orders, Variants, Replenishment readiness and Configuration. The rows are orders the supplier has written about or that are past their expected delivery date, variants in critical condition, variants with no lead time or no unit cost, and terms nobody has set. Each row's act is a door or a press: Review order, View email, Open the book when more orders need action than the drawer shows, Review now, Add to bench, Set, Configure and Edit. On Lite and Essentials the critical row also offers Review now, which opens Smart Replenishment for this supplier; on Pro it stands on Add to bench. The same counts ride on the Orders, Catalog and Terms tabs. The tabs: Orders is the purchase orders pinned to this supplier, with its Orders and Suggested views. Catalog is what the supplier carries, in three segments: Variants, Products and Size packs. Terms shows the recorded payment schedule when one is managed, distinguishing payment at order, at dispatch and after receipt. Otherwise it shows the deposit. It also holds cancellation notice, landed cost factor, minimum order value and price breaks. Contacts lists the supplier's people. Email lists the threads with the supplier's domains. The side card lists the places this supplier serves, those with their own terms or an order going to them, each with its lead time; its Add button opens Edit and Show not set up lists the rest. Orders carry a Currency tag, Unpriced on a draft with no cost, and Date from lead time where the delivery was worked out from the lead time. Case packs describe how a purchase unit converts into inventory units; they are separate from mixed-size packs. The Products segment summarises the case pack, or shows Varies by SKU when variants differ. NetSuite-managed definitions are maintained in NetSuite. Supplier CSV downloads include the purchase unit, inventory unit, units per purchase unit and source/version references; retain the references when re-importing. ## What to do Writing needs a seat that can write; the server refuses a read-only seat's save. Edit opens the same drawer as New supplier on Suppliers, with a table of lanes by warehouse; the consequence line counts how many lanes Save writes and says the rest are unchanged. Archive asks in a popover: the supplier drops out of the menus for contacts, purchase orders and inventory items, stops syncing, and keeps its links and history; you can unarchive at any time. Unarchive runs on the click. In Catalog, Add to catalog opens the variants the supplier does not yet carry. Select rows for Add to bench with one quantity for every selected line, Edit to set Unit cost, MOQ, Batch size or Cadence in days on every selected line, Assign to another supplier, which moves the variants to another supplier's catalog and can carry the MOQ, unit cost and lead time or set it as default, or Remove, with Undo in place. Unit cost also edits in its cell and saves as you leave it. Size pack explains the third segment and its acts. In Terms, Edit changes the supplier's terms. Orders and Terms show order values in their recorded currency. A minimum comparison reads Unknown when the order amount or currency is missing, or its currency differs from the supplier's minimum. In Orders, Approve and Ignore a suggested order as on the book. Nothing on this record creates a purchase order or moves stock. ## When it is empty or failed > This supplier could not be read. The read failed; the record offers the way back to Suppliers. > What needs attention could not be read. The attention read failed; the record still renders. When nothing needs a person, the Needs a person button is not drawn. A catalog with nothing in it reads No products in this catalog; a supplier with no size packs reads No size packs yet. SKU warehouse defaults display their source as **SKU warehouse default**. Editing freight alone preserves that inherited lead time; setting an explicit supplier lead time remains a separate change. --- # Suppliers Source: https://docs.tightly.io/help/supply/suppliers Reviewed: 2026-09-07 ## The question this page answers Who do I buy from, on what terms, where, and which records are too incomplete for replenishment to read? ## What you see Suppliers is the list of everyone you buy from: one row per supplier, archived ones hidden by default. In the retailer chair the same page is Vendors, and every word below that says supplier reads vendor. The head is the page's name with New supplier; its menu offers Sync from email and Import from a file, which is a door to Settings › Data. The basis line reads Supplier currency · Days. Under the head a row of figures counts the suppliers On record, then, where any live record lacks one, No lead time and No minimum order value. Each gap's figure is a door: pressing it narrows the table to those suppliers. The columns are Supplier, Country, City, Minimum order value, Lead time and Contact; Zip code, Email and Phone can be added from the column picker. Minimum order value is money in the supplier's own currency; where nobody has set one the cell shows a dash and its hover says None on record, never a zero. Lead time is a range in days over the supplier's warehouses, one figure when they agree, and the hover lists each warehouse with its days, marking any warehouse that inherits your default with the words from system; Lead time explains the rungs. A supplier with no lead time at any warehouse shows a dash. Contact is the primary contact's name, with the email or phone on hover, and the row menu offers Email and Call. An archived supplier carries the word archived beside its name. A country or city nobody has filled in shows a dash that reads Not set on hover. The Filters popover narrows by Country, City, Currency, what is Missing, the Minimum order value as at least and at most, Lead time in four bands (Up to 14 days, 15 to 30 days, 31 to 60 days, Over 60 days), and Show archived only. Each choice stands as a chip you can remove. The footer counts the suppliers shown and how many archived are hidden. The No lead time count reads the supplier's own single lead time, not its warehouse rows, so a supplier can be counted there while its Lead time cell shows a range inherited from your default. ## What to do Press a row to open The supplier. Writing needs a seat that can write; a read-only seat's save is refused by the server. New supplier opens a drawer: Name, the address, Country, Currency, Minimum order value and up to three email domains. A minimum left empty or at zero saves as no minimum. Create supplier needs only a name, and opens the new record. A new supplier inherits your default lead time everywhere; lead times by warehouse are set on the record once it exists, where the same drawer adds the Primary contact, Ships in, and a Lanes table of your warehouses with each one's lead time, container, freight and road limit. Before Save on an edit the consequence line counts the lanes you changed: > Saves {n} of {m} lanes; the rest are unchanged. Save on an edit needs a change. A refusal is the server's sentence in the drawer; two you may read name the warehouse ids: > Duplicate location entries: {ids} > Locations do not exist: {ids} When the write fails for another reason the drawer reads The supplier was not saved. Sync from email reads the supplier domains found in your connected mailbox and offers one row per domain with a name seeded from it. The consequence line counts the suppliers it creates, each with its domain and a contact. A tick also imports newly detected vendors from your source of truth as suppliers. Without a connected mailbox the drawer says Connect your email to sync suppliers, with the door Connect email. When the inbox cannot be read it says so and that nothing in your data has changed. Import from a file opens Settings › Data, where a file of suppliers is mapped and loaded. ## When it is empty or failed > The suppliers could not be read. The read failed; Try again reads it once more. > Add the first supplier The list is empty; the doors are New supplier, Sync from email and Import from a file. > No suppliers match these filters. Clear the filters. --- # Variant suppliers Source: https://docs.tightly.io/help/supply/variant-suppliers Reviewed: 2026-09-07 ## The question this page answers For this variant and each supplier that carries it: what is the minimum quantity, batch size, unit cost, cadence and per-warehouse lead time, and which supplier is the default? ## What you see Variant suppliers is a drawer, not a page of its own. It opens from the supplier fact in the variant's room in Inventory, and it holds everything Tightly knows about buying one variant from each supplier on file. Its head is one sentence naming the default supplier: {supplier} supplies this variant by default. When another supplier on file is on time more often, the sentence names that one instead: {supplier} is on time more often than {default}. Every term sits in the table beneath. The basis line reads Supplier currency · Days. The table is one row per linked supplier, the default first, then the most reliable: Supplier, with its on-time percentage as a sub-word, archived where it is, and the badge Most reliable on the highest score; Default, the word on the default row and a Set as default button on the others; MOQ; Batch; Unit cost, in the supplier's currency, with from variant beneath where the cost comes from the variant rather than this supplier; Cadence, in days, with from system beneath where it is your default; Lead time, as a range with a by warehouse word that opens a second table of Warehouse, Lead time and Source; and Remove. Set as default and Remove appear only when more than one supplier is linked. The source words matter more than the figures. A lead time's Source reads this variant at this supplier, this supplier, or from system; a cost reads from variant or stands on its own. The word, never the number, says whether an override exists. MOQ and batch do not inherit from anywhere, so an empty cell means none, and a quantity of zero is treated as no minimum. Where the variant sits in a size pack at that supplier, the MOQ and Batch cells read 1 · size pack and cannot be edited. ## What to do Writing needs a seat that can write; the server refuses a read-only seat's save. Edit MOQ, Batch, Unit cost, Cadence and each warehouse's lead time in the cells. Only what you changed is saved; a field you clear goes back to inheriting from the level above, and nothing seeded from an inherited level is sent until you touch it. The consequence line before Save says so: > Only what you changed is saved. Set as default makes that supplier the variant's default, the one the Bench buys from when a line arrives without a supplier and the one replenishment marks as default. Remove asks first: > Remove {supplier} from this variant? Its MOQ, cost and lead times for this variant are dropped. Add supplier links another supplier that is not archived; its row is seeded from what the variant would inherit, and the link is saved with Save. Nothing here writes the supplier's own record or its minimum order value; that is money on the supplier, edited on The supplier. Two refusals are the server's own sentences, in place: > Exactly one supplier must be marked as default. > Cannot unset the default supplier; mark another supplier as default instead. ## When it is empty or failed > This variant's suppliers could not be read. The read failed. > No default supplier set. No supplier is linked, or none is the default; add one and set it as default. > The supplier settings were not saved. > The supplier was not removed. The write failed for a reason the server did not name; try again. SKU warehouse defaults display their source as **SKU warehouse default**. Editing freight alone preserves that inherited lead time; setting an explicit supplier lead time remains a separate change. The **Sources** control opens the searchable warehouse breakdown for this SKU and supplier. Hover or focus the information control to review raw imported lead times and the effective source. Editing the **SKU warehouse default** there preserves the imported value and leaves stronger supplier-specific overrides intact. Save pending supplier changes before opening Sources. --- # The Budget Source: https://docs.tightly.io/help/replenishment/budget Reviewed: 2026-09-07 ## The question this page answers What can each month of this fiscal year still spend on stock once what has been spent, what is on order and what replenishment is asking for are counted, and where did the year's buying money go? ## What you see The Budget is the whole of Finance on Lite, Essentials and Essentials+: the fiscal year the merchant typed as a grid of months, and the open to buy arithmetic that [Smart Replenishment](../replenishment/smart-replenishment), [the Bench](../replenishment/the-bench) and [Home](../home/home)'s money rungs read. It is the Budget row under Plan on those rails; the Pro rail has none. The basis line reads cost, the currency and the month; the head prints no as-of. The head's controls: Revenue target, typed in place, Not set until it is, saved on Enter or on leaving the field, Escape cancels; Year starts, the twelve months, which realigns the saved months onto the new year and reruns the post-sync calculations; Quick fill, for a writing seat, a menu of drafts, Spread evenly across the year, Follow the suggested buy, Match last year's spend, Clear every month, each offered only when its source is there; and a menu of doors, Smart Replenishment and [Purchase orders](../supply/orders). Two figures can stand in the head: Against unplanned months, money spoken for in months nobody planned, and Revenue to date with its share of the target under it, or no target set. Beneath them the year's position: Stock budget, Spent, On order, Suggested purchases and After suggested purchases. Includes unsaved budget changes. stands while a month is edited. Then how many months are over budget and unplanned, with Review purchase orders and Review suggested purchases. The page is three sections, one shown at a time, named on a strip: Plan the buy, Review investment and Track results. Plan the buy is the one written grid, twelve rows in fiscal order over a footer named Fiscal year: Month, with this month as its word; Budget, pressed to type, Not set where nobody typed it, a dotted rule and edited on hover where a draft differs from what is saved; Spent, confirmed, shipped or delivered orders at cost by the month they were confirmed, Not yet for a month not begun; On order, confirmed, shipped or in-production orders by the month they are expected to land; Suggested, the replenishment engine's live recommendations by replenishment date; Against budget, the share with a meter in the cell, Not planned where the month has no budget; Open to buy, the month's budget less spent, on order and suggested, negative with the dot and the word short, Not planned where nobody planned the month. That dot is the page's one attention mark. The chart over the grid is the grid drawn: the bar is Against budget, the wash inside it Spent, the dashed tick Budget, with the year's Against budget beside the title. Review investment reads the year by capital quadrant, Winner, Traffic Driver, Sleeper, Bleeder, in one order everywhere, with Classified by quadrant, the four bands' share of revenue, as its figure: Share of spend, with over or under as its word where it drifts five points or more from the Segment benchmark; Segment, the industry's share, or No industry set, and the whole column leaves when nobody set an industry; Spend; Revenue; Margin; GMROI, each Not measured where it is not. [Capital quadrants](../product/capital-quadrants) explains the four. Track results is read-only: the same year split into a Fiscal year band and one band per quadrant, each quadrant headed by its share of the year's revenue; Revenue, always shown, Planned COGS and Actual COGS chosen from a Measures menu; Not yet for a month not begun; and a chart, Revenue and cost, one line per measure to the last closed month. ## What to do Type a figure in Budget, in any month including a past one, and the strip counts the months edited with Discard and Save. A first plan needs a figure for every month before Save plan can be pressed, and says so in ink beside it: > Every month needs a figure before a first plan can be saved. Where an edited month is left empty the one consequence sentence stands before the button: > Saving writes $0 for 3 months with no figure. Saved. renders in place, and a refusal renders there verbatim, such as Field may not be negative. or Budget plan not found for the month named. A seat that cannot write reads Saving a plan needs write access. Nothing here blocks a buy. Set a budget on Smart Replenishment and Open the budget on Home both land here. ## When it is empty or failed A first plan is the Plan grid with every Budget cell Not set, Against budget and Open to buy Not planned, and Save plan. Before the first sync has been worked, the page is one sentence with a door to Home. > The budget could not be read. A section's read failed, with Try again; on Plan the buy it refetches the plan and the year's analytics. > No purchase-order spend yet. Review investment, before any order has spent. > No quadrant is classified yet. Track results, where the read answered with nothing classified, never the failed state. A save refused without a sentence reads That budget could not be saved., That revenue target could not be saved. or The fiscal year could not be moved. --- # Cover, and why cover is a minimum Source: https://docs.tightly.io/help/replenishment/cover Reviewed: 2026-09-07 ## What it is Cover is how long the stock on hand lasts at the rate it is selling: days of cover on one line, weeks of cover on a book or a ledger. It is the figure a buy is read against, because a line with less cover than its lead time will be empty before an order can land. Cover is a minimum in three senses, and each of them is the reason a figure reads the way it does. A cover figure pooled over many lines is the thinnest of them, the minimum across a style's locations or a range's variants, never an average: an average hides the shop that is already empty. A cover figure that outlasts the forecast is a floor, and prints as a bound, N+: the walk ran out of forecast, not the stock. And the cover you ask for, a policy's trigger, a corridor's minimum, the ledger's cover asked for, is a floor to stay above, never a target to hit exactly: above it the book is long or heavy, below it the book is short. ## How Tightly decides it The replenishment engine walks the forecast day by day, at the grain of a variant in one warehouse, and counts the days until the stock on hand is gone. Nothing on hand is zero days, a stockout, and it is measured. Stock that is unknown reads zero as well, because zero prompts a look where a long runway would suppress one, and the recommendation itself is withheld rather than guessed. Stock that outlasts every forecast day reads the whole horizon walked, flagged as a floor, so two lines that never deplete read alike. It reads direct-to-consumer forecasts only. The cover gap is the lead time less the cover on the shelf: the days a line stays empty even if it is ordered today, and the reason a recommendation exists. It is banded on the row, not re-derived on the page: no gap lands in time, up to thirty uncovered days is a gap, and past thirty is the deep gap expediting no longer recovers. On a rolling commitment, the weekly pace reading is cover rather than sell-through: the share of variants whose thinnest cover sits outside the declared corridor. On the ledger, cover is read at the recent rate and at this week's rate, and Short of cover counts in units what a declared cover target asks for beyond the stock counted. On the plan of record, a closing stock target typed as weeks of cover becomes a level by the planned sales of the weeks that follow, and the conversion is named. ## The words on the face | Word | Where | What it means | |---|---|---| | Days of cover | Smart Replenishment, Policies | Days until the line runs out at the forecast rate; a line already out reads 0 days · out, with no mark | | Weeks of cover | The ledger, a commitment's corridor | The same idea in weeks | | Gap | Smart Replenishment | Lead time less cover, in days; a measured zero reads 0 days | | Lands in time | The Buy chart, Reorder lines on Pro | Ordered today, the delivery arrives before stock runs out | | Short for under a month | The Buy chart; Short under a month on Pro Reorder lines | Stock runs out before the delivery lands, by up to a month | | Short for over a month | The Buy chart; Short over a month on Pro Reorder lines | Empty for more than a month whatever you order; too far behind to expedite | | No forecast | Policies, Allocation | No forecast to walk, so no cover can be read | | Stock unknown | Allocation's Excluded warehouses | The count is unknown, so the warehouse is skipped | On Smart Replenishment the Buy chart splits the buy into the three bands, worst first, and pressing a bar narrows the grid to that band. ## What you can do about it On Smart Replenishment the grid opens on what breaks first, then on what it costs; Add to Bench stages the lines a person accepts, Draft transfers moves stock from a warehouse that holds it, and nothing is ordered until an order is confirmed. On Policies a rule fires when days of cover drop below a figure you set, and Tightly's own recommendation reads days of cover, lead time and profitability on every run. On Pro the same lines are Reorder lines on a commitment's desk, budgeted by its envelope, and a rolling commitment's corridor is where the floor is declared. On the ledger the ways back from a book that is heavy are named, cheapest first, and none is performed for you. ## Glossary line Cover is how long stock lasts at the current rate, in days on a line and weeks on a book; a pooled figure is the thinnest line, a bound prints N+, and the cover asked for is a minimum to stay above, never a target. --- # Smart Replenishment Source: https://docs.tightly.io/help/replenishment/smart-replenishment Reviewed: 2026-09-24 ## The question this page answers What do I need to order over the coming period, what is it worth, how much of it is already too late to save, and which lines do I accept onto the Bench, move from another warehouse, or make in-house? ## What you see Smart Replenishment serves Tightly Lite, Essentials and Essentials+: the Replenishment row on the rail holds it, and the Replenishment address opens it. On Pro the address is closed and lands on the Bench, and Ask Tightly offers no door to it, because on Pro the same work belongs to Commitments. The engine reads every variant at every warehouse, walks its stock forward against the forecast, and lists the lines that run short inside the horizon you choose. The head names the page and the current run. Beside it stands a row of figures: Open to buy for the month, before this buy (amber only when the buy runs over it; Not declared with Set a budget where no budget exists; Not measured where the Budget did not answer), then Lines, Units and Suppliers. While a filter narrows the grid, Open to buy leaves the row, because it measures the whole buy. Where the engine's run is late, behind or unfinished, its own sentence stands under the head. The Buy chart splits the recommended buy into Short for over a month, Short for under a month and Lands in time, worst first, plus Not funded for the lines the month's budget could not fit. Unpriced band totals read Not measured, not zero. Pressing a bar narrows the grid to its lines; the pressed name then stands with the filters, and pressing it again lifts it. The controls, one row: Finished goods or Raw materials; the horizon, Next {n} days from your cadence's presets, with one longer horizon added when your longest lead time needs it; Any supplier, Any warehouse, Any policy (with Open policy once one is chosen); a search for product, variant ID or SKU; Columns; Group by supplier; Projection, once lines are picked or a bar is pressed; and Clear filters. The grid draws Product, Warehouse, Cover, Gap, Order value, Recommendation and Route. Columns adds Supplier, Policy, Buy priority, On hand, On order, Lead time, Unit cost and Sell price. Cover reads in days, and a line already out reads 0 days · out. Order value reads Unpriced where no cost exists, with a dotted rule and the word Not funded on hover where the budget could not fit it. Recommendation is units, with past the forecast or lower confidence on hover. Route says where the line goes: To Bench, Transfer, Made in-house, No supplier or Nothing to order. The footer counts the lines. On hand and On order retain fractions; recommended purchases keep their rounding. ## What to do Select rows and the bar counts them with their units and value, then offers each act only for lines of its kind: Add to Bench ({n}), Draft transfers ({n}) and Draft manufacturing orders ({n}). A read-only seat sees needs write access beside them. Add to Bench stages the lines and reads back in place, with the door Bench: > {n} lines added to the Bench. Draft transfers opens the transfer drawer seeded with the moves. Draft manufacturing orders says before its button that it drafts each order at the variant's making warehouse, and that nothing is produced until each is confirmed. Their receipts read {n} transfer orders drafted. and {n} manufacturing orders drafted., with doors to Transfer orders and Manufacturing orders. Press a row for Why this quantity: Order {n} units by {date}., the stock timeline, On hand, On order, Lead time, Order lands, Covers until, Next order, Supplier, Policy, costs, Minimum order, Budget, what is already inbound, and doors to the product, variant and supplier, with the line's own act. Projection opens a pane of closing stock for the picked lines over the next 26 weeks, Do nothing against With plan. Data readiness, at the foot, opens Data; Dismiss asks first: > Dismissed, this section does not come back. ## Policies and scoped signals The **Replenishment policies** icon beside the policy filter opens the policy catalogue, including creation and editing. **Open policy** opens the particular rule selected in the filter. A line's explanation shows any **Season limit** or **Policy order held** check, including its date and allowed units; changing a policy does not remove the commitment's seasonal limits. When a demand signal opens this page, the selected variant and warehouse remain in scope. A named-account signal can also add an account filter, shown as a removable chip. Clear that chip or the warehouse selection deliberately to broaden the recommendation before acting on it. ## When it is empty or failed A failed read prints the server's sentence, or The buy could not be read., with Try again. On a fresh, complete run with nothing short: > Every line is covered past its lead time. With filters on, it offers Clear filters. Where the run is incomplete or still calculating, the page says coverage cannot be confirmed rather than claiming it. A stage that failed reads Nothing was added. with the server's reason. SKU warehouse defaults display their source as **SKU warehouse default**. Editing freight alone preserves that inherited lead time; setting an explicit supplier lead time remains a separate change. Across all stock includes needs beyond direct-sales replenishment. Review Buy opens the buying workspace for your plan. --- # Close a seat or a showing Source: https://docs.tightly.io/help/connect/act-close-a-seat-or-showing Reviewed: 2026-09-24 ## What closing a seat or a showing writes Two separate closes on the buyer portal, and both only narrow what a buyer can reach. Neither sends anything. Withdrawing a showing stops its link answering. It writes a new version of the showing carrying the day it was withdrawn; it is never an edit, so what the buyer was shown stays on record as it was. Withdrawing a showing that is already withdrawn reads back the same showing rather than withdrawing it twice. Nothing already booked is touched. Closing a seat revokes one buyer's access to the portal now: their next read on the portal is refused. The seat stays on file, closed, and what the buyer already sent you stays. ## Who may close a seat or a showing A seat that can write (read and write or above), on Tightly Pro, where the buyer portal and showings exist. On Essentials+ neither act is offered. Ask Tightly may propose either. It states which one it will close in one sentence and ends its turn, and closes it only after you say yes on a later turn. Sharing a showing, inviting a buyer and changing which pages a seat opens stay presses on the page, because each reaches a person outside your company; Ask Tightly declines them and says where they are made. ## Where you close them by hand A showing: on the account's **Product range** sheet, **More** holds **Withdraw** for a seat that can write. The sheet then reads "The showing to {account} was withdrawn on {day}.", and the Product ranges list's Link column reads Withdrawn {day}. See Product ranges. A seat: in the Seats at {account} drawer (Invite a buyer), Revoke on the seat's row asks once more: > {person} loses the seat now; what they sent you stays. Revoke the seat closes it and reads "{person} no longer holds a seat."; Keep it leaves it. See Invite a buyer. ## What Ask Tightly says before it closes one The sentence is composed by Tightly from the account, not written by Ask: > Withdraw the showing sent to {account}, so its link stops answering; nothing is sent to the buyer. > Close this buyer's seat at {account} now; nothing is sent to them. ## How to reopen a seat or a showing Neither is undone from a conversation. A withdrawn showing is shared again from the account's sheet with **Share as a link**. This records a new version under the same showing and reopens its existing link. A closed seat reads "This seat is revoked; invite them again to give them one." and is handed back by inviting the buyer again from Seats. Both are the page's presses, because both reach the buyer. ## Refusals you may read when closing Changing a closed seat instead of reopening it: > That seat is closed. Invite the buyer again to reopen it. A showing that is not on file is refused by name. "The seat was not revoked." stands in the drawer where no reason came back. --- # Declare how sell-out reads Source: https://docs.tightly.io/help/connect/act-declare-sell-out-reporting Reviewed: 2026-09-24 ## What declaring how an account's sell-out reads writes Four answers one account's weekly report needs before the first file from them can be read: what the figures cover (each store, their distribution centres, or the whole account), the currency, whether prices include tax, and what a missing row means (the product sold none, or the account did not report it). A fifth, the day their week ends on, is optional. There is no default for any of them, because every default is wrong for about half of all accounts: one writes an explicit zero for a product that did not sell, another leaves the row out. All four land in one press. A declaration with any of them missing is refused rather than completed by a guess, and the account is always named, never read from a file. Declaring again for the same account replaces the answers, and every later file from that account is read by the new ones. Nothing is sent to the account. ## Who may declare how sell-out reads A seat that can write (read and write or above), on Tightly Connect, which is Essentials+ and Pro. A read-only seat can read what an account has declared and cannot declare it. Ask Tightly may record the answers you give it. It is told to take all four at once and never to guess them from a file, and a call missing one is refused by the server; it states what it will record in one sentence and ends its turn, and records only after you say yes on a later turn. ## Where you declare it by hand On Sell-out intake, Import a file: for an account with no answers yet, the button reads Record the answers and import {n} rows, and a refused import offers Record these answers and import. On Setup's Your accounts step, each account's Declare or Change opens "How their sell-out reads": Their reports cover, Their prices are in, Their prices are, Their file lists, and Their week ends on. Before the button it reads: > Every file from {account} is read this way until you change it. Nothing is sent to them. Record how they report writes the four, and the drawer reads "Recorded for {account}". See Sell-out intake. ## What Ask Tightly says before it declares The sentence is composed by Tightly from the account, not written by Ask: > Record how {account}'s sell-out files are read; nothing is sent to the account. Once recorded, the answer comes back saying this account's reports can now be imported. ## How to change a declaration There is no undo from a conversation. The way back is declaring again for the same account, on Setup, on an import or by asking: the new answers replace the old ones for every file read afterwards. ## Refusals you may read when declaring > say which currency these prices are in, as a three-letter code such as GBP or EUR > the day their week ends on is 0 for Monday through 6 for Sunday, or absent if unknown An answer missing on what the figures cover, on tax or on what a missing row means is refused with the choices it takes. On the drawer, "Answer each of the four." stops the button before anything is sent, and "How they report was not recorded." stands where no reason came back. --- # Import an account's sell-out file in Ask Source: https://docs.tightly.io/help/connect/act-import-sell-out-file Reviewed: 2026-10-21 ## What importing a sell-out file in Ask writes On an account's page, attach a CSV, TSV or XLSX export from that account. Ask reads the file, finds the week, the UPC or SKU, units sold, store, on-hand units and price, and shows what would land: rows, matches, rows with no matching product, the weeks covered and the totals. Nothing is written until you press Import. The weeks then appear in that account's Sell-out view. Sending the same file again changes nothing: a week is kept once for each account, product and store. A corrected file replaces the weeks it covers. Nothing is sent to the account. ## Who may import a sell-out file A seat that can edit the company's data, on Tightly Connect. A read-only seat cannot attach, preview or import. The first file from an account that has no saved column match also needs an admin, who confirms the detected columns once; after that any editor can import that account's files. ## What it needs first The account must have its reporting answers recorded (what the figures cover, the currency, tax, and what a missing row means). Without them the preview shows no Import button. A file with no date asks which week it covers. ## What it does not read Not PDF, images, old .xls files or workbooks with several sheets, and not files over 8 MB. An account's own item number matches only when it equals one of your SKUs; other rows are listed as not matched and left out. ## What Ask Tightly says before it imports When you ask in words, Ask previews the file and then states the rows, the weeks and what is left out, and imports only after you say yes on a later turn. ## How to change an import There is no undo. Import the corrected file again and it replaces the weeks it covers. --- # Claims Source: https://docs.tightly.io/help/connect/portal-claims Reviewed: 2026-09-26 ## The question this page answers Claims answers what you have asked this brand to change on your orders, and what they decided. A claim you raise names one line and asks for one thing: move its window, change its quantity, or cancel it. It waits until a person at the brand accepts or declines it; that decision is the only place a claim becomes money, and it is theirs to make. ## What you see ::: shot page ::: The head is the page's name, Claims, and its one act, Raise a claim, with the basis Units · every season and the as-of at the right. The page reads your whole book, not the season chosen in the band. What waits on you is counted on the rail: the number beside Claims is the decisions the brand has landed that you have not read yet. Once there is a claim, the figure row counts three things off the table: Decided, Raised by you, and From your email, the claims the brand lifted from a message you sent them. Each is a plain count. The table is one claim a row. Raised is the date and who: by you, by {brand}, or by {brand}, from your email, with the name of the person who raised it on hover. Line is the style with its season and category, the season alone where the brand's room could not place the line in a category, or Names no line. Ask is the change asked with its figure: New window {from} to {to}, Move ships-from to {day}, Move cancel-by to {day}, Change to {n} units, or Cancel by {day}; where no figure was asked it reads the ask itself: Move the ship window, Change the quantity, Cancel the line, or, on a claim the brand lifted from your email, Change the price or Hold the line. State reads Waiting on {brand}, with the brand's name, while it is open, then Accepted, Declined or Withdrawn with the day of the decision, and · new to you beside a decision you have not read yet. Thread is the count of what has been said on the claim. A claim the brand lifted from your email shows its type, the dates asked and the decision, never the text of your message; your own words come back to you only on claims you raised. The brand's exposure on a claim is theirs and never crosses. ## What to do Press Raise a claim, on this page or from a line on My orders or a window on Ship windows. The drawer asks for the Line, reads it back, and asks for the change under Ask: Move the ship window (New ships-from and New cancel-by), Change the quantity (New quantity) or Cancel the line (New cancel-by), with Words for why you are asking. Above its one button, Raise the claim, stands the one thing true of every claim: "Nothing changes until {brand} accepts." The button waits, with its reason beside it, until the claim can be read: "Name the line this claim is about, so the change can be read against it.", "Name the date you want it to ship from." or "Name the quantity you want." The receipt is the claim's Ask, Raised and State, where the button was; a refusal with no sentence reads "Your claim was not raised." When the brand accepts, the line takes its next version and My orders and Ship windows read the new date or quantity; when they decline, the state says so with the day. Press a row to open the claim: its Ask, Raised and State, and the thread. Say something there or read what the brand said; each comment carries its author's name, company and chair, and above the box it reads "{brand} can read this and answer here." Nothing here emails anyone; the counts on Home and on the rail are the notification. ## When it is empty or failed Waiting on {brand} is an open claim; new to you is a decision that landed since your seat was last opened. A book with no claim reads "No claim on your orders." A read that failed reads "Your claims could not be read.", or carries the server's own sentence where one was sent, with Try again. A thread nobody has spoken in reads "Nothing said yet."; a comment the server refused, "What you said was not posted." --- # Sell-in only Source: https://docs.tightly.io/help/connect/sell-in-only Reviewed: 2026-09-24 ## The sentence The word under a demand figure, on the account's Book and, where an active Commitment declares the season, on Accounts: > sell-in The word in a Grade cell, on the account's Book and Performance work area and, on Tightly Pro, in the showroom: > Sell-in only The baseline engine's own sentence when no account at all reports sell-out: > No account reports sell-out yet, so there is nothing to grade. ## What it means Tightly holds what this account orders from you, and nothing it can use about what the style sold there. The account has reported nothing for the style's predecessor, its look-alikes or its family, or has sent no sell-out at all, and the brand has no brand-wide level for the style either. So the baseline engine has no evidence to grade the style there, and it does not declare a grade from someone else's doors. The demand figure then stands on the account's sell-in, and the word sell-in under it says so. On Accounts the word follows the season's married demand: sell-out where the account's sell-out measures the season, sell-in where it does not. The two sides are married, one or the other driving the account's demand, never added together. It is not a failed read and not an empty book: the account's lines, prices and windows are all on file. It is not a zero: the account may have sold everything, and nobody has told Tightly. And it is not the engine being late: a late or failed run says so with its own date, and this word says the input was never there. Sell-in only is one of several words a Grade cell can carry in place of a grade. From the brand means the account reported nothing for the style or anything like it, so the brand's own level stands in. Too few weeks and Out of stock all season are the engine's reasons for refusing a pair, and Not graded is a pair it never assessed or refused without naming why. ## What to do next Land the account's weekly report through Sell-out intake: choose the account, preview the file, record the account's answers once, and import it. The account's styles are graded again as soon as the file lands, for that account and no other, and the word under a demand figure turns to sell-out where a predecessor the account reported decides it. Its Performance work area and Locations work area fill on their next read. Chase the sell-out file, on the account's Performance work area, opens Sell-out intake and prepares a chase note for that account. Until then the book is the evidence: record the account's orders with Record a booking on the account, or bring them in through Order intake, and the demand figure reads from them. Where a comparable style at the account exists, the engine reads from it instead and prints a range with reference under it, which is a different word for a different source. ## Who to ask Ask Tightly answers from this article and can open the account or Sell-out intake for you. It does not import a file. --- # Save and fire a skill Source: https://docs.tightly.io/help/ask/act-save-and-fire-a-skill Reviewed: 2026-09-07 ## What it writes Two acts share one door. Saving writes the skill Ask Tightly drafted in a conversation as a Draft at Tells you, the shortest rope, with the worked examples and corrections from the conversation kept as its cases from the first day. A saved draft runs nothing: publishing it, and every rung above the first, is a person's press on the skill's own page. Firing runs a published skill once, by hand, from Ask Tightly. The run keeps every gate the skill carries, its rung, the fields it may change, its ceilings and its wait; firing routes work and never widens what the skill may do. ## Who may press it A read-write seat, for both. The person who confirms the save is the skill's creator, and every run of that skill executes as them, whoever fires it later. Firing takes the same permission as running the skill from the Skills page; a read-only seat is refused in words and nothing runs. Publishing and promotion are never acts of Ask Tightly: they are presses behind the Skills door, an admin or someone named on the Approvals page. On Tightly Lite neither act is offered, because skills are sold from Essentials up. Over a connected client, a skill is drafted through the conversation and saved with Save as a draft skill once the person has confirmed it. Firing is refused there: a run executes as the skill's creator, so a relayed question cannot set one off, and the person runs it from the Skills page instead. ## What you see In a skill-writing conversation the draft rides every answer, so the sequence on Write a skill fills before anything is saved, with the badge Draft, not saved. The chip Save as a draft skill carries its confirm, naming the skill and its rung and saying it runs nothing until it is published: > Save "{name}" as a draft skill at Tells you; it runs nothing until it is published. The receipt carries the skill's door and two dry runs. The back test says, for a skill fired by an event, how many of the matching events on the 90-day ledger it fired on and how many it missed; a skill that is not fired by an event is not back-tested, and the receipt says why. The cases result says how many of its cases passed on the saved version. Firing answers with the run: the skill's name and the run's key, and the run's page is where its steps and changes are read. ## What to do A saved draft has nothing to undo, because it ran nothing; the receipt offers the door. Publish it from the skill's page when it reads right, and it starts at Tells you. A fired run's way back is Undo everything on the run's page, which puts every reversible change back in one press; a change with no before-value cannot go back, and the refusal names which. ## Refusals you may read > No such skill in this organization. A skill that is not published cannot be fired; the sentence names the skill and says only live skills can be fired. A read-only seat is told that firing a skill takes the same permission as running it from the Skills page, and that this seat is read-only. A run that could not be started: > The skill could not be started. Nothing ran. A draft with a hole in it is refused at the save with the validation's own sentence, naming what is missing, and the conversation keeps going until it is whole. --- # Update saved insight Source: https://docs.tightly.io/help/ask/act-update-saved-insight Reviewed: 2026-09-07 ## What it writes Update saved insight writes the question on your screen to the kept answer's record: the period, the grain, the breakdown, the filters, the measures, their order and how many rows. Until you press it, everything you change in the workspace is scratch; the Board keeps the question it was saved with, and the address of the page carries your view so a link opens the same scratch for a colleague. The Compare and Threshold chips ride in that address too, but they are part of the view, not of the question, so the press does not write them. The press moves the question and clears the figures that were kept for the old one: the saved chart, its rows and its period. The title and any written text are untouched, the day the figures were last read stays, and where the answer is pinned does not change. Because nothing is left to measure a movement against, the Board's next read of this answer says Not comparable in Since saved, with no saved figures beneath it, until the answer has been read again. ## Who may press it A Member or an Admin, on a kept answer on your own Board. A Viewer's press is refused with the role sentence. It is the workspace's one write of this kind; the Board's rows and Home's readings never re-plan themselves. ## What you see The moment the question on screen differs from the record, the head gains a neutral badge > Adjusted · board unchanged and the primary Update saved insight, and the chips row carries Undo naming the last change. After the press the badge and the button leave, the head reads Board updated at with the time, and the address drops the view. Nothing pops up and nothing navigates. A written answer never shows the row, because it has no question to update, and neither does an answer kept without a question of its own. ## What to do The way back before the press is Undo, one change at a time, down to the record. After the press there is no earlier version to return to: adjust again and update again, or ask the question afresh and keep the new answer beside the old one. Remove from board deletes the answer altogether. ## Refusals you may read A refused update prints the server's own sentence under the acts, in ink, and marks nothing saved. Where the server answered but the record still holds the old question, the page says so in its place: > The board still holds the question it was saved with. A link whose view could not be restored shows the saved record with the badge Saved view shown and the reason on hover: > The view in this link could not be read An answer that is no longer on the Board cannot be updated, and the page says No longer on your board. with the Board door and nothing else. --- # Ask Tightly: answers, the Board, the workspace Source: https://docs.tightly.io/help/ask/ask-tightly Reviewed: 2026-09-24 ## The question this page answers What can Ask Tightly see, what did I ask last, and what does an answer rest on? Ask Tightly is the one assistant on every page of Tightly. This page is its own room, headed Conversations: the box that asks, the ways in, and the conversations you had. Kept answers live on the Board, and one kept answer is worked in the workspace. On Tightly Lite the Board holds ten fixed charts instead, and nothing is kept. ## What you see ::: shot page ::: The head reads Conversations. Its basis shows the source, history depth and last sync; press it for record types and counts. History opens conversations older than those listed. Under the head is the box. Before anything is typed it reads > Ask Tightly about your stock, your orders or your buy plan on Tightly Pro, and ends with your budget on Essentials and Essentials+. On Tightly Lite it reads Ask Tightly about your stock, your sales or how Tightly works. Beside it stand the ways in, grouped Recap (the Weekly recap, while there is one), Questions (Today’s briefing, Stockout risks, Late suppliers, Chart days of cover) and Acts (Draft a PO). On Tightly Lite the ways in are what Lite's Ask Tightly does: Questions (What runs out next and Where the stock money sits, two of the fixed charts, then Reading my stock and Where my orders are) and Acts (Report a problem). Below, Recent conversations lists the newest eight in two columns, Conversation (with Starred beside a starred one) and Last. A conversation is a document: your question in ink, the answer beneath. While an answer is on its way a status word stands where it will land: Thinking…, or a word for the step being taken, for example Reading your data… The head shows the conversation's name, with a **Rename** pencil button beside it, with Started, the day and the turn count beside it, and Conversations as the way back. A charted answer shows its title, takeaway and read time. Its chips offer supported changes to the period, grouping and comparison; a changed chip reads Yours. **Table** opens the figures. **Basis** shows the choices behind them, and **Resources** links to sources. ## How Ask Tightly answers A question that only asks to be taken to a page, such as open purchase orders, is answered at once: > Here is Purchase orders. with the door Open Purchase orders under it. This happens only when the words name exactly one page your plan opens; anything else gets a full answer. A how-to question, such as how do I set a lead time, is answered from the help centre. If it needs your own figures, it is answered from your records from the start. An answer about how Tightly works must cite an article, open one, or stand on your own figures; one that does none of those is replaced with The knowledge base has no article for that. A question about your own products, orders, periods, rankings or charts, and anything that would change a record, is always answered from your records. On Tightly Lite, Ask Tightly draws the ten fixed charts, opens doors to pages, reports a problem and answers from the help centre, and nothing else. ## What to do 1. Type your question and press **Ask**, or **Enter**; **Shift+Enter** breaks a line without asking. 2. Press **Stop** to halt an answer while it is being written. 3. Change an answer's basis with its chips (**Period**, **Read by**, **Split by**, **Compare**, **Threshold**); each press reads the same question again with your choice. 4. Press **Adjust** to bring the answer into the workspace. It offers the controls that report supports. Period comparisons let you change the comparison period, additive measures and category or channel filters; **Read by**, **Ordered by** and **How many** are hidden. **Back to the conversation** returns. 5. Where a suggested act stands under an answer, press **Yes** or **No**; Ask Tightly changes nothing without that press. 6. On Essentials and above, open the answer's menu for **Save to board** or **Add to Home**; in a commitment's room, **Keep on this room**. 7. Open a conversation's menu for **Star**, **Rename** or **Delete**; a row in Recent conversations also carries **Open**. ## Explain a recommendation and act Ask "Why are you recommending this, and what can I change?" from the product or commitment; the answer can combine sales, forecasts, account demand, warehouse stock, promotions, pricing and look-alike evidence, and names what evidence is missing rather than guessing at it. Check the products, account or channel, dates and reason before confirming a forecast change: Ask saves through the forecast editor and links back to that selection, and never places an order or amends an agreed merchandise plan on its own. A kept table without a live query behind it is a dated snapshot; reopening it keeps the rows it had, so ask again for current figures. ## When it is empty or failed Where a read did not land, Recent conversations says so, with Try again: > Ask Tightly could not read just now. > Your conversations could not be read just now. A conversation that will not open reads > Error loading the chat, try again later. An answer that failed prints its sentence with Try again; one you stopped offers Retry. Nothing on this page changes a record without your press. --- # Connecting an AI agent Source: https://docs.tightly.io/help/ask/connect-an-ai-agent Reviewed: 2026-10-03 ## What it is An AI agent is an assistant that runs outside Tightly, such as Claude, ChatGPT, Cursor or VS Code, and reads your organisation through Tightly's MCP server. MCP is the open standard these assistants use to connect to a service. Connected, the agent reads what your own seat reads, as you, and every call passes the same checks a press on the page passes. It can also ask Ask Tightly a question and read Tightly's own answer. Connecting an agent is sold with Essentials+ and Pro. On Lite the page an agent opens refuses, in the plan's own sentence: > Tightly Lite does not include connecting an AI agent. It is sold with Essentials+. ## The address to give your agent Every agent connects to one address: ``` https://mcp.app.tightly.io/mcp ``` An organisation whose home is the EU region can use `https://mcp.eu.tightly.io/mcp`. The first time the agent reaches Tightly it opens your browser at [Connect an AI agent](../access/mcp-authorise), where you sign in, pick the organisation and choose its reach. An agent set up with an older address ending in /sse needs this one instead. ## Claude On claude.ai or Claude Desktop, open **Customize**, then **Connectors**, press **Add** and **Add custom connector**, name it Tightly and paste the address. Leave sign-in on **Use Claude's published identity (Recommended)**. On a Team or Enterprise plan an owner adds it once under **Organization settings**, **Connectors**, and each member presses **Connect**. Turn it on in a conversation from the **+** button, **Connectors**. In Claude Code, add it once, then type /mcp and sign in when the browser opens: ``` claude mcp add --transport http tightly https://mcp.app.tightly.io/mcp ``` ## ChatGPT Your own connections need a ChatGPT plan with developer mode. Turn on **Developer mode** under **Settings**, **Security and login**; some accounts show it under **Settings**, **Connectors**, **Advanced**. Then create an app: name it Tightly, paste the address, choose **OAuth**, save and connect. ChatGPT asks you before any tool that writes. ## Cursor and VS Code Cursor reads mcp.json in the .cursor folder of your home folder or of a project: ```json { "mcpServers": { "tightly": { "url": "https://mcp.app.tightly.io/mcp" } } } ``` VS Code reads mcp.json in a project's .vscode folder, or run **MCP: Add Server** from the Command Palette: ```json { "servers": { "tightly": { "type": "http", "url": "https://mcp.app.tightly.io/mcp" } } } ``` Both open your browser to sign in the first time a Tightly tool is called. ## Read, or Read and act **Read** lets the agent read what your seat reads and nothing else; no tool on Read writes. **Read and act** adds the act tools: the agent may propose adding lines to the Bench, drafting a purchase order or keeping an answer, and your own assistant asks you before each one, as the consent page says: > It asks you before every act, and never signs off, releases or closes a commitment. Read and act is offered only where the agent asked to act and your organisation allows it. An agent whose assistant cannot ask you is offered no act at all. A grant lasts 24 hours at a time, renewed for up to 30 days. For an unattended integration, an admin can create a key on [API keys](../settings/api-keys) and give it to the agent in place of signing in. A key reads only the resources ticked on it, and it never acts or asks Ask Tightly. A key made in the EU region is used at `https://mcp.eu.tightly.io/mcp`. ## Ending an agent's access Every agent that reads as you stands on [Profile](../settings/profile), under Your agents, with the day it was granted, when it was last used and when it last acted. An admin also sees every assistant connected to the organisation and can end any of them for everyone. **End access** stops one at once: > This agent stops now; nothing it did is undone here. The agent finds out on its very next call. ## Limits A signed-in agent may make 120 calls a minute and propose 20 acts an hour. Over either, the call is answered with the wait, for example: > This agent has asked 120 times this minute; try again in {wait}. A key spends its own allowance, 600 reads and 120 writes a minute. What Tightly keeps is the consent page's promise: > Every call is kept for 90 days, never what it read, and Tightly trains no model on your data. ## When it does not connect - **The agent lists no Tightly tools.** Check the address ends in /mcp and that the assistant connects over streamable HTTP. - **It reads but never acts.** It was granted Read, or its assistant cannot ask you. Reconnect it and choose Read and act, or make the change on the page. - **The consent page refuses.** Its sentence says why: your plan, your organisation's list of approved agents, or a Tightly Connect seat. - **The sign-in lapsed.** A request lasts 10 minutes; start again from the agent. - **A figure looks old.** The agent reads Tightly live, so it shows what Tightly shows after the last sync. ## Glossary line An AI agent is an assistant outside Tightly that reads your organisation as you through Tightly's MCP server, on a grant you choose and can end at any time. --- # The Board on Lite Source: https://docs.tightly.io/help/ask/lite-board Reviewed: 2026-09-07 ## The question this page answers How did my store trade, what moved, and where is the money sitting? On Tightly Lite the Board is ten charts that are always there. Every Lite store reads the same ten in the same order, and nothing on this page is built, saved or thrown away: they arrive made, they are read from your records each time the page asks for them, and they are the charts your plan draws. The Comments action opens discussion for the current permitted page. A precise chart comment is offered only when the chart supplies a stable record and period; unsupported points remain a general discussion. ## What you see The head is the page's name and nothing else. Under it the ten stand as bands, as many across as fit: two at a normal screen, three on a wide one. The order is the argument, and it is the order a Monday reads: how trade went, what moved, what running out cost, what is about to run out, what came back, and where the cash is sitting. | Chart | What it answers | |---|---| | Full price share | How much of the last 26 weeks was taken at full price and how much at markdown, week by week | | Gross margin | Margin against sales for 13 weeks, week by week, priced at your cost per item | | What rose and what fell | Your top ten products by net sales over the last four weeks, each against the four before | | Sales by channel | Net sales by channel for 13 weeks, week by week | | What running out cost | Missed revenue and lost units by product over 13 weeks, worst first, top ten | | What runs out next | The fifteen lines projected to run out soonest, in days, with the shortfall beside each | | What comes back most | Returned units and the return rate by product over 12 weeks, most units first, top ten | | Returns over time | The return rate by value, week by week, over 13 weeks | | Where the stock money sits | Stock at cost by category, largest first; on Shopify the category is your product type | | Dead money | The fifteen products with the slowest cover, with the stock value beside each | One of the ten, What runs out next, carries Add to Home, and Home is where it lands. ## What to do Read them in the order they stand. Hover a mark for the figures behind it, or open a chart in a larger pane from the control at its top right. Nothing here renames, saves, pins or deletes. In Ask Tightly, a Lite plan draws these same ten charts, points you to the page a question is about, takes a problem report, and answers how-to questions from the help centre. It does not read your records for a question of its own, and it keeps nothing: the ten are the charts, and they are what the Board holds. ## When it is empty or failed A chart with nothing to plot says which absence it is and never draws a zero: > No sales in the last 26 weeks. > No sales in the last 13 weeks. > No sales in the last four weeks. > No line was out of stock in the last 13 weeks. > Nothing is projected to run out inside the horizon. > Nothing was returned in the last 12 weeks. > No stock on hand. Where Tightly can measure why the answer is empty, it says the measured reason instead of the general one. Cost per item is optional in Shopify, and the three charts priced from it (Gross margin, Where the stock money sits and Dead money) say how many lines are missing it: > Cost per item is not set on {missing} of your {total} variants. or, where none carries one, Cost per item is not set on any of your {total} variants. Where every cost is filled and a margin still cannot be priced: > None of the sales in this window carry a cost, so margin cannot be worked out. Where no product carries a product type: > None of your products carry a product type, so they all sit in one category. Days out of stock are counted forward from your first sync and nothing supplies the past, so the stockout chart dates itself: > Stockout days have been recorded since {date}. A book too short for the comparison says how short: > Your orders reach back to {date}, which is not enough to read four weeks against the four before. Two sentences are the page's own, for a read that did not land: > This chart could not be read just now. > Your charts could not be read just now. The second stands where the ten would be, with Try again beside it. --- # Mark an internal transfer Source: https://docs.tightly.io/help/ask/mark-intercompany-transfer Reviewed: 2026-09-25 ## What to ask Ask Tightly to preview an internal transfer using the exact NetSuite sales order ID and the purchase order that matches it. The preview writes nothing; review the sales order and the linked purchase order before confirming. ## What changes An administrator can mark the reviewed order as a transfer, confirming it on a later turn. The confirmation names both orders and the units taken out of customer demand. Both orders stay, with their incoming stock and payments; only the sale stops counting as customer demand. Asking to restore the order puts it back into customer demand and keeps its transfer history. Where NetSuite links the sales order to a purchase order, that link decides the pair, and a different purchase order is refused. After a change, demand and forecasts are rebuilt, and until they are, the reads that need a current forecast say a refresh is pending. On a plan with skills, to repeat this for a known internal customer, ask for a skill using its exact customer ID. The skill takes only orders with a NetSuite-linked pair and leaves the rest for review, and it runs only once it is published and given autonomy; saving it does neither. --- # New skill Source: https://docs.tightly.io/help/ask/new-skill Reviewed: 2026-09-07 ## The question this page answers How does a skill get written, and where does what it builds appear? Write a skill is a conversation with Ask Tightly beside the skill it is building. You tell Ask Tightly what you are tired of doing by hand; it asks what it would otherwise guess at, builds the skill as a sequence of steps, shows what it would do on today's desk, and saves it on the shortest rope, Tells you. ## What you see The head is Write a skill, with a badge that reads Draft, not saved until the skill is saved and its state and version after. The basis line reads Today · dry run once there are steps to run. Skills is the door back, and once the draft is saved a second door, named after the skill, opens its page. The conversation is the Ask Tightly panel, opened and pinned to this page's conversation when you arrive; the page starts it for you with its opening line. The main is the skill as it is built. Sequence lists the steps in order, with the figures each would produce if it ran now; until a turn has drafted anything it reads Nothing drafted yet. Beside it, once there are steps and the main is wide enough, stand two cards. Applies to is the dry run on today's desk, with Style, Cover, Reorder and Would (Stage, Park or Leave), and Re-check today to run it again. How far it goes shows the four rungs and what the first move up will want: Cases, Fires (Not measured on a draft) and Next rung, which reads Ten cases, thirty days, nine agreements in ten. ## What to do Describe the job in one sentence, as you would to a colleague. Answer the questions Ask Tightly asks back: the ceiling it may not spend past, the fields it may change, the judgement it should hold. Watch the sequence fill and the dry run say what a run would do today; correct it in the conversation and the draft is rebuilt. Every worked example and correction in the conversation is kept as one of the skill's cases when it is saved. Save it from the conversation when it reads right. The chip is Save as a draft skill, and its confirm names the skill and says it is saved at Tells you and runs nothing until it is published. Saving writes the draft and runs nothing; the receipt carries a back test against the event ledger's last 90 days where the skill is fired by an event, and the result of running its cases. Publishing is a separate press on the skill's own page, behind the Skills door. Every run of the skill executes as the person who saved it. ## When it is empty or failed > Ask Tightly could not start the conversation just now. with Try again, where the conversation could not be created. A conversation this account cannot read prints > This conversation could not be read just now. in place of the skill, with Try again. A draft that is not complete is refused at the save with the reason naming what is missing, and the conversation keeps going until it is whole. Nothing on this page posts to the Skills list directly, and nothing publishes. --- # The knowledge base has no article Source: https://docs.tightly.io/help/ask/no-article Reviewed: 2026-09-07 ## The sentence > The knowledge base has no article for that. Where Ask Tightly held back an answer it could not stand on, the sentence carries one more clause: > The knowledge base has no article for that. Rather than guess, I have left it there. or, when the page you asked from has a door of its own, > The knowledge base has no article for that. Rather than guess, here is the page it is about. with Open and the page's name under it. ## What it means Ask Tightly answers questions about how Tightly works, where something is, or what something means, from the knowledge base: the same articles this help centre publishes. When a question is shaped like one of those (how do I, where is, what does, why does, can I), Tightly searches the book with your words before Ask Tightly reads the question, and hands it the four closest sections, weighted toward the page you are on. Only the articles written for your plan are searched, and if the book cannot be read at that moment the answer is this sentence rather than a guess. The answer must then cite one of those sections, open an article whole, or stand on your own figures read from your records. When none of them answers the question, Ask Tightly says this sentence and nothing softer, and answers only from what your own data shows. An answer that does none of those things is not sent. Its words are withdrawn and the sentence with Rather than guess stands in their place, with no suggestion to press, because a suggestion built on an unchecked answer is unchecked too. A page, a term, an act or a refusal is never described from memory: a confident answer with no article behind it is the failure the book exists to end. If Ask cannot verify an explanation against the articles it read, it asks you to try again. This does not mean an article is missing. Every Monday Tightly asks Ask Tightly a scripted set of questions on its demonstration books. Each answer that comes back with this sentence is counted, the share of them is one of the five measures the book is held to, and each one files a gap for the next article to be written. It is not a refusal of your question. It is not a plan gate, which has its own sentence. It is not an error: the book was read and had nothing yet for that page, that word or that act. ## What to do next Ask again in the words the face uses: the word on the cell, the title of the page, the label on the button. A question about your own numbers does not need the book at all; on Essentials and above, ask it plainly and Ask Tightly reads the data. On Tightly Lite, the ten fixed charts on the Board are the read of your numbers. Follow the page's door where one is offered. Browse this help centre by zone, where the article may sit under a neighbour's title. And ask once more after the next release: the book is republished with every release and Tightly reloads it within the hour, so a new article is answered from the day it ships. ## Who to ask Ask Tightly, again, in the product's words, or open the help centre and search it yourself: it is the same book Ask Tightly reads. --- # A page act asked of Ask Source: https://docs.tightly.io/help/ask/page-acts Reviewed: 2026-09-07 ## The sentence What Tightly answers when Ask Tightly tries to perform a page's own act itself, instead of offering it to you: > The page performs this act; the copilot only proposes it. Nothing was called. The rest of that answer tells Ask Tightly where to put the act: on the page, with the page's own rows, for you to press. The answer is addressed to Ask Tightly rather than to you, so you rarely read it; you read its result, which is the act offered as a button under the answer. ## What it means Ask Tightly proposes; the page performs after you press. Ask Tightly never ticks a row, arms a bar or presses a button. It returns an act, a typed proposal that names rows the page showed by the page's own keys, and the page in front of you arms it. Your press performs it through the page's own writers, so a refusal lands where you pressed. One performer per act, always: a press the page took is not also sent back to Ask Tightly, so one press can never both arm a bar and start a second write. So when you ask Ask Tightly to draft a purchase order from the rows in front of you, or to add styles to the Bench, and it answers that the page performs this act, nothing went wrong and nothing was called. The act arrives as a button carrying the rows the answer named, and the button is yours. Ask Tightly writes something itself only from a short list of permitted acts, and asks first unless the write is one only you will see, such as keeping an answer on your own Board or Home. Six acts on a commitment are a person's alone, and Ask Tightly reaches them only as a door: amend, reassign, sign off, release the chase, retire and close. A button Ask Tightly names for one of those is demoted to a sentence; the door opens the act's own drawer or page with the answer's choices filled in, and the press there is yours. A few other writes, such as confirming a sales order or sending an invoice, are refused from the conversation outright and made on their page with the document in view. It is not a permission problem: your seat may well hold the act. It is not a plan gate: a room your plan does not include has its own sentence. It is the shape of every write Ask Tightly proposes. ## What to do next Press the button under the answer. It arms the page's own act over the rows the answer named, and the page's own control performs it. If the answer named rows the page did not show, the act stands as a sentence and not a button; ask again from the page that shows them. To undo, use the page's own way back. ## Who to ask Ask Tightly itself, on the page: ask what pressing the act would change before you press it, and it answers from the act's own article. --- # A read-only seat asks and performs no act Source: https://docs.tightly.io/help/ask/read-only-seat Reviewed: 2026-09-07 ## The sentence When a viewer asks Ask Tightly to fire a skill, the skill is not started and Ask Tightly relays the refusal it was given: > Firing a skill takes the same permission as running it from the Skills page (read-write); this seat is read-only. When a press from a viewer's seat reaches a page's write, the route answers with the sentence every role check in Tightly shares: > Your access level does not cover this. Ask an admin on Team to raise it. A few routes answer a role check with a sentence of their own that names the act; the meaning is the same. ## What it means Your organisation has three roles, set on [Team](../settings/team): Admin runs the workspace, Member works the product, Viewer sees everything and touches nothing. A viewer reads every page and asks Ask Tightly anything: starting a conversation, sending a question and reading an answer all take only a viewer's seat. What a viewer cannot do is write, and Ask Tightly does not carry a write around that. Ask Tightly offers a viewer no act to press. Every act it can propose needs a seat that may write, so for a viewer the suggestion stands as a plain sentence rather than a button. The one exception is the dry run of a commitment's compile on Tightly Pro, which writes nothing. Keeping an answer on the Board or on Home is a write too, so a viewer is not offered it, and renaming or deleting a conversation needs a Member's seat. Every act Ask Tightly performs runs under your own seat, so the same door has the same lock whether you press it or ask for it. Firing a skill is the plainest case: the run would write as the skill's author, so the fire takes the permission the Skills page takes, and a read-only seat is told so in words rather than handed a run it could not have started itself. On Tightly Lite Ask Tightly cannot fire a skill at all, so a Lite seat never meets that first sentence; the second one is the refusal a read-only seat can meet on any plan. It is not a plan gate, which names what sells the room. It is not a failed read: the page read, and refused the write. And it is not a fault of the page: a button a viewer can see is still a button the route refuses. ## What to do next Ask an admin at your organisation to change your role on Team; Member is the role that works the product, and Admin adds the team, the settings and every door. Until then, read, ask and share what Ask Tightly answers; none of that is a write. Where your plan carries Skills and one needs firing now, a Member or an Admin fires it from the Skills page. ## Who to ask An admin at your organisation, whose name Team shows. Ask Tightly answers from this article and can say which role an act needs, but the grant is your organisation's own. --- # Your company Source: https://docs.tightly.io/help/ask/setup-company Reviewed: 2026-09-08T00:00:00Z ## The question this page answers What should Tightly know about your company before it reads any of your data? It is the second card of setup and the last one before you connect anything. It appears on a guided arrival only: a store install is asked none of it and walks straight to the system card. ## What it asks Five answers, on one card, under the basis line `Editable in Settings` and a sentence that reads them back, such as "{name} plans weekly, on a year opening in {month}." **Name.** As it should read on every page, on a purchase order and in an email to a supplier. It is the name a staffer put on your company when they prepared it, and you may change it here. **Vertical.** One of five. It picks the benchmarks your figures are graded against, so a premium apparel book is not measured against a beauty one. **Currency.** What every money column on every page means. **Fiscal year opens.** The month your year starts. A year is always twelve months, so the month it ends is the month before, and you are not asked for it. **Planning cadence.** How often you plan: daily, weekly or monthly. It opens on weekly, which is what the rest of the platform assumes when nobody has said. ## What it states rather than asks Under the five, one row, Your words, shows the words your pages will use, taken from the kind of company you named on the card before this one: what you call the companies you buy from, what you call the places your stock sits, and what you call what you sell. Change reopens that question, because the answer lives there and is asked once. ## Why it comes before the connection The card is answered before the system card, so the first import and the figures computed at the end of it read your currency, your year, your cadence and your vertical rather than defaults. Answered after the import, a changed answer changes a number you have already been shown. ## When you can change it All five live in Settings afterwards: name, currency and vertical (as Industry) on General, and the fiscal year and the cadence (as Replenishment frequency) on Planning. Nothing here is a decision you are stuck with; it is a decision worth making before the numbers arrive rather than after. ## What Continue waits for The name, the vertical, the currency and the fiscal year. The reason beside Continue names all four at once rather than the first of them, so the card is answered in one pass. The cadence always has an answer, so it never holds you up. Where the save is refused, the server's own sentence stands under the card and nothing you typed is lost. --- # Setup: Connect Source: https://docs.tightly.io/help/ask/setup-connect Reviewed: 2026-09-07 ## The question this page answers Where am I in setup, what does this step need, and can I leave and come back? Setup is one wizard in three phases, Connect, Review and Finish. Connect is the first: what kind of company this is, where your data lives, the connection, and the import. You can stop at any step; Tightly brings you back to it. ## Two modes Setup runs in one of two modes, and the mode changes words and doors. Self-serve is the mode of a store install from the App Store listing: nobody at Tightly speaks to you, so the line under the card reads Need help? with two doors, Ask Tightly and Knowledge base. Guided is the mode of every other arrival, an invitation from Tightly or a custom install: a Tightly person is on the plan with you, and the line under the card names them: > Your Tightly contact: {name}. with Book time beside it; with no name on the plan it reads Need help? with Book time. Before an organisation exists the install the browser is holding decides the mode; after it, the organisation's edition does. ## What you see ::: shot page ::: The phase column stands down the left, under the wordmark: the three phases with their steps beneath, the current step marked and the completed ones ticked. A step the wizard skips, such as the sales channel steps for a single-channel book, is absent rather than greyed. The column is not drawn on the first two cards or on a dead end. The card sits at reading width: an eyebrow with the step's position, such as {phase} · Step {n} of {total}, the title, one table or row set, and a footer at one control height, Back, Skip for now where a step is optional, and Continue, disabled with its reason as the word beside it. Return to dashboard appears in the header when another organisation exists; Log out only on a dead end. The first card, on a Guided arrival, asks > What kind of company is this? under a welcome such as "Welcome to Tightly, {name}: {contact} invited you to set up {company}.", with three rows, Brand, Retailer and Both, each in the customer's own sentence. The answer sets the words the whole product uses (supplier or vendor, warehouse or store). A store install is not asked it. On Guided, the system card asks > Where do your items and stock live? with the basis line `System of record` and two answers, In a system we run and We do not run one. The first lists the systems of record; the second lists stores under Where you sell and warehouses under Where you ship from. Each table reads Tool and Connects (You sign in, or With credentials); its last row, Not here, reads Ask your Tightly contact to connect another system. A Shopify store connects through an app Tightly prepares: Ask for your install link, whose consequence line reads "Tightly prepares a Shopify app for {shop}. This page shows the install link the moment it is ready.", then Waiting for your install link, then Install Tightly on Shopify. On Self-serve the card is titled Where does your data live?, lists the store you install from the App Store and Email as Later in setup, and says "Other systems come with Essentials+ and up." Where the install is already in hand, the store connects as the card mounts and reads Connected · {shop}. Connect {tool} takes the tool's own credentials, secrets masked with Show, and Connect writes them; where a role has to be built first, the page that builds it is linked above the fields. A connection walks straight on to the import: a second store is not a step of this wizard. Importing your {source} data shows the seven sets as one table, Data and State, each reading Not started, Syncing…, Synced or Failed in ink with no colour; a Failed set carries its served reason on hover. > {done} of {total} sets are in. and, once the first pass lands, Your {source} data is in: {total} of {total} sets synced. The as-of reads Synced {when}, or Not yet synced, checked every 30 seconds. Continue waits for the last set; Continue to Home opens Home while the data arrives. ## What to do 1. On a Guided arrival, choose the kind of company (**Brand**, **Retailer** or **Both**) and press **Continue**. 2. Pick **In a system we run** or **We do not run one**. 3. Sign in to the system, or type its credentials, and press **Connect**. 4. For a Shopify store, press **Ask for your install link**, then **Install Tightly on Shopify** once it arrives. 5. Wait for the import, or press **Continue to Home** and come back; the data-ready email brings you to Review. A connection is managed later in Settings, under Integrations. ## When it is empty or failed > Setup did not start and no reason came back. A connection that did not complete prints the server's own sentence where it served one, and otherwise one of > Something went wrong while connecting. Try again. > The integration did not connect. Try again. > Your session expired. Try again. On Importing: > No system of record connected. > The import status did not load. > Your import has not started; Tightly has been told. An import that stopped before anything succeeded is the dead end, with its own article. --- # Setup: Finish Source: https://docs.tightly.io/help/ask/setup-finish Reviewed: 2026-09-07 ## The question this page answers What rhythm should Tightly plan my orders against, and when can I start? Finish is the third phase of Setup: your planning rhythm, then, on Essentials+ and Pro, the accounts you sell to, then the moment the account is ready. On a Guided arrival, connecting the inbox you email suppliers from is not a step here; it is a task on Home. ## What you see ::: shot page ::: Your planning rhythm is one row set, under the basis line `Editable in Settings`. Its sentence states the rhythm as it stands: > {name} plans {frequency} against a {n}-day lead time. Where Tightly already holds the name, the currency or the time zone, each stands as a fact with a Change control, and with the words From Shopify beside it where Shopify wrote it; one Tightly does not hold opens as its control. Two controls carry defaults: Default lead time in days, from 1 to 365, with the words How long a supplier usually takes beside it, and Replenishment frequency, Daily, Weekly or Monthly. Currency and time zone decide how every figure and date in Tightly reads; the lead time and the frequency set the default rhythm every order is planned against until a supplier or a policy says otherwise. Nothing here touches the fiscal year or the Budget. On Essentials+ and Pro, Your accounts follows: the accounts you sell to through Tightly Connect, with Add an account above them and Skip for now as the press until one is named. On a store install the last card is Your email, one address Tightly may write to, filled in with the address you signed up with and required, under "Tightly may write to you at this address." A Guided record parked on the old email step meets the card Connect your email with one button, Finish setup. Setting up your account shows a bar that fills, and the page opens Home by itself. On Guided, the Onboarding plan stands beside the wizard: one checklist you and your Tightly contact both see, with rows ticked from the record (the system connected, the first import complete, the fields matched) and rows a person ticks by hand (the kickoff held, the data checked against your system, the readiness review said aloud). Each row reads Done, Not needed, Waiting on you, Waiting on Tightly or Open, and a finished row says who did it. Only an Admin settles a row. The wizard's eyebrow counts the setup steps, not the plan. ## What to do 1. Check the name, currency and time zone; press **Change** on any that is wrong. 2. Set **Default lead time in days** and **Replenishment frequency**, or keep the defaults. 3. Press **Continue** to save them and walk on; it stays disabled until a lead time is set. 4. On Essentials+ and Pro, press **Add an account** under Your accounts, or **Skip for now**. 5. On a store install, confirm **Your email**, or press **Finish setup** on a Guided record parked on the old email step. 6. On Home, connect the inbox you email suppliers from when you are ready. Every one of these is editable later in Settings: name, currency and time zone under General, lead time and frequency under Planning. ## When it is empty or failed A refused save prints the server's own sentence under the row set. Where it said nothing: > The settings were not saved and no reason came back. A finalize the server refused reads > Setup could not be closed and no reason came back. and the record stays on Finish, so a reload resumes here. On a phone the last step does not advance: the bar is not drawn, and Sign out for now stands in its place. --- # Importing, and the dead end Source: https://docs.tightly.io/help/ask/setup-importing Reviewed: 2026-09-07 ## The sentence > Your {source} import stopped at {set}. The Importing step prints, in place of its progress sentence, the reason the connection served for the set that failed, or the run's own reason. Where nothing was served it prints the sentence above, or "Your {source} import stopped." where no set is named. Under it stand Try again, which asks for the run again, and one of two doors by mode (below). A second sentence belongs to the same card, for a run that was asked for and never began: > Your import has not started; Tightly has been told. ## What it means The first import of your system stopped before it ever succeeded. Tightly fetches seven sets in order: Warehouse data and connections, Connected sales channels, Product details and variants, Inventory counts and stock levels, Supplier information, Sales orders and Finalizing setup. Each reads Not started, Syncing, Synced or Failed in the table under the sentence. On a run that is still going, a set that reads Failed carries the reason the connection served on hover of the word; on the dead end the head is that sentence, said once. The dead end prints only when a set failed and nothing has ever landed; an import that fails after an earlier success is not a dead end. The second sentence is a run that never started: every set still Not started a quarter of an hour after the connection was made, and no run ever stamped. It is a real state, not a slow one, and Tightly's own staff channel is told by its hourly pass. Neither sentence is a diagnosis. It says which set stopped and what the connection said. Review cannot open until the first pass lands, because the pages after it plan against what Review confirms. ## What to do next On Self-serve the one door is > Ask Tightly what is missing It opens the Ask Tightly panel. Tightly has also been told, unasked: the failure posted to the staff channel with your organisation, the set and the sentence, so the connector is fixed without a ticket. Nobody at Tightly will call; there is no booking on a Self-serve face. On Guided the card says > {name} has been told. and offers Book time, a door to your Tightly contact's diary. Your contact reads the same failure on their side. On the run that never began, the Self-serve door reads Ask Tightly, and where no contact is served yet the Guided card says "Tightly has been told." Leaving is safe. Log out and come back: the record still says Importing, so you land on this card, and the data-ready email brings you to Review once the first pass lands. While a run is in flight a Learn line stands under the sets, six doors into the knowledge base. ## Who to ask Ask Tightly, on this card and on every page, is the helper on Self-serve; the knowledge base is what it reads. On Guided, the person named on the plan. There is no support mailbox on this face, and no call to book on Self-serve. --- # The skill editor and its evals Source: https://docs.tightly.io/help/ask/skill-editor Reviewed: 2026-09-07 ## The question this page answers What does it do step by step, what would it do today, how far does it go, is it proven, what waits on me, and what has it done? One skill's page is its sequence and its record on one page. Its cases, the evals, are a card on it; the evals address opens the page at that card. ## What you see An order-reading skill previews current orders with type and status tags, quantities, delivery dates, locations and costs. The preview shows at most ten records and the native result count. It changes no orders. Current case results use the latest evaluation of the displayed version; older failures remain in the run history. The head is the skill's name with a badge: its state and version, such as Live · v3, or Draft · v4 while a next version is being written. The basis line reads USD and the version. Under it a row of figures off its runs: the money it put on the Bench, how many runs, how many lines were held and how many runs were put back; a figure of nought is left out. The head's acts are Skills, the door back, then Run now, then the primary: Publish with the version on a draft or an off skill, or Move it up one rung on a live one, absent at the top rung. The cards, laid out in one to four panes by the width of the page: | Card | What it holds | |---|---| | Sequence | The steps in order, each with what it did on the last run and across all runs | | Applies to | The dry run on today's desk: Style, Cover, Reorder and Would (Stage, Park or Leave), with Re-check today | | How far it goes | The four rungs (Born here, Earned, Passed, Not yet), the gates to the next rung in the server's words with Open or Not yet, and What moved it | | Held for you | Only when this skill has parked decisions: What, Why, Since, and Approve or Reject | | Runs | One row a run: When, Outcome, Read, Kept, the act's own count, On the Bench and Held, with Can go back where the runs differ | | Cases | The score as a count on this version, such as 10 of 10 on v3, Run all, and Case, Result where one is red, Checks and From run | On a live skill How far it goes comes before Applies to on a narrow page; on a draft the dry run comes first. A run's row opens the run. A case opens its checks, each marked In code or Judged, two different claims said apart, with its result. ## What to do Run now works on a live skill only. Its consequence stands before the press, "Runs the sequence once now; lines park at this rung.", and the receipt reads Run started with the time and that it lands in Runs. On a draft the Runs card says > Publish it first; a draft runs nothing. Holding the Skills door means an admin, or a read-write seat named an approver for Skills on the Approvals page. With it, a step's row opens the step in a drawer and its menu offers Move up, Move down, Add a step after and Cut this step. A change lands on the draft; on a live skill the receipt says the live version keeps running until you publish the draft. Publish is enabled when you hold the door and no case is red; otherwise the reason stands: Needs the Skills door, or One case is red. The server also refuses a publish while any case has not been run against this version, and publishes only a draft, so on an off skill it refuses; either way it prints its own sentence. Run all runs every case against the current version; a case that goes red on a live skill steps it down a rung. Move it up one rung is enabled only when every gate is open and you hold the door; otherwise the first closed gate's own words stand under it. The rung is earned, not granted, and the skill steps back down by itself if the evidence turns. Cases come from runs, through Keep this run as a case on a run's page, and from the conversation the skill was written in; nothing here adds, edits or deletes a case. There is no rename, duplicate, delete or step-down button on this page. ## When it is empty or failed > This skill could not be read just now. > No runs yet. stands in Runs, or names the first scheduled run where there is one. > No cases yet; keep a clean run as one from its page. A skill with no steps reads No steps. A refused publish, save, run or move prints the server's own sentence where the button was. --- # A skill's run Source: https://docs.tightly.io/help/ask/skill-run Reviewed: 2026-09-07 ## The question this page answers What did it do step by step, what changed, what waits on me, and can all of it go back? A run is one execution of a skill. Its page is the evidence a decision needs, and the one way back. ## What you see The head is the skill's name with a badge, Run and the day it ran, and a second badge, Undone, once it has been put back. The basis line names how long the run took and the version it ran at; a failed run's error stands beside it. Under the head a row of figures counts what the run did: the money it put on the Bench, how many records it read, kept and acted on, and how many lines it held; a count of nought is left out. The head's acts are a door named after the skill, Keep this run as a case, and Undo everything. Step names come from the definition that actually ran, so later edits do not rename a completed run. The cards: | Card | What it holds | |---|---| | Sequence | The steps this run ran, in the words of the version that ran, with this run's figures and each step's status | | Changes | One row a record: Record and After, with Before and Can go back where the rows differ on them; what every row agrees on is said once over the table | | Held for you | Only when this run parked lines on you: What, Why, Since, and Approve or Reject | | Kept as a case | Recorded checks with their result, evaluated version and time; previous failures remain in the history | The Changes footer counts the lines and, where money was written, totals it; where more than one line carries money a chart draws each line's money on the Bench. On the skill's own page the same run reads in the Runs card in one of these outcome words: | Word | What it means | |---|---| | Ran clean | Finished and wrote something | | No changes | Finished and wrote nothing | | Parked | Stopped for a person's Approve or Reject | | Rejected by a person | Cancelled at a parked step | | Waiting to act | Waiting out its wait | | Failed | Stopped with an error | | Running now | In flight | | Queued | Not yet started | | Undone | Put back | ## What to do Keep this run as a case makes the run a permanent case for the skill. The receipt reads Kept as a permanent case., the Kept as a case card appears, and from then on the skill cannot publish a version on which that case is red. Undo everything puts every change back in one press. It is enabled only when every change can go back, nothing has been undone yet and there is something to undo; otherwise its reason stands over the Changes rows: Already undone., Nothing to undo., or > A change carried no before-value, so nothing can go back. because a half-undone run is worse than either state. The receipt counts what was put back, and where this is the second undo in a fortnight the skill steps down a rung and the receipt says so. A refusal prints the server's sentence, which names the fields; where the undo put nothing back the receipt reads Nothing was undone. On a parked run the Held for you card says what the two verbs do, Approve resumes the parked run and Reject cancels it, and each decision reads back in its row. There is no single-change undo, no re-run and no edit here. ## When it is empty or failed > This run could not be read just now. A run with no changes says so in the Changes card: > Nothing changed. A run still parked on a decision reads instead > This run is parked on a decision; nothing has changed yet. A run whose outcome is not known carries the reason in place of the undo, and Undo everything is not offered. A failed run carries its error beside the basis and has nothing to undo. --- # Skills and the ladder Source: https://docs.tightly.io/help/ask/skills Reviewed: 2026-09-07 ## The question this page answers What runs without me, how far does each go, is it proven, does it fire, and what is waiting on my decision? A skill is something that runs without you, written with Ask Tightly in a conversation. The Skills page lists every skill you have, where each stands on the ladder, and the decisions the skills have parked on you. ## The ladder Every skill stands on one of four rungs, and the words are the same on every face: | Rung | What it does | |---|---| | Tells you | Sends you the reasoning and writes nothing; every act stays with a person | | Drafts it, you approve | Composes the change and parks it for one press; everything writes through the approvals queue | | Does it, then tells you | Reversible writes go through on their own, each announced after the fact | | Does it quietly | Reversible writes go through with the run log as the record | A skill is born at Tells you and climbs one rung at a time. A rung is earned against evidence, never granted: the gates are at least ten cases all passing on the current version, thirty days of running, and agreement nine times in ten where a person has decided. They are shown on the skill's page, and the move is a person's press once they are open. Demotion is automatic: a case going red on a live version, or two runs undone inside a fortnight, steps the skill down a rung. An irreversible write parks for a person at every rung; that is not a setting. ## What you see The head reads Skills with the basis USD · 90 days. Under it is a row of counts: how many decisions are waiting, how many skills are live, how many are drafts and how many fire under 90%; a count of nought is left out. The controls are Start from one of ours and Write a skill. Waiting on you, when a skill has parked a decision on you: What, Worth where a figure was served, Skill, Waiting (how long, with the day it arrived on hover) and Your decision, with Approve and Reject. The section's door is Inbox. Every skill, with a Fires chart above the table that draws each skill's rate against the 90% floor and leads with the lowest. The columns: Skill (its name, with when it starts under it), Steps (one mark a step, with the count under it), Starts when (On an event, On a schedule, When a condition holds, or By hand, with the wait or the condition under it), Goes as far as (the rung's words), Cases (such as 15 of 16, with how many are red under it, or None yet), Fires (the rate, marked under-triggering below 90%, or Not measured, with not back-tested under it for a skill that is not fired by an event), and State (Live, Draft or Off with its version, such as Live · v2). Live skills come first, then drafts, then off, each by name. On a narrow card Starts when folds first, then Cases, then Goes as far as. A row opens the skill. Noticed, when Ask Tightly has proposals, or when you arrive at its own address: a pattern it saw in your own actions, with Times seen, First seen, Last seen, Confidence (Strong, Worth a look or Thin), a Back-test where one was served, and Your decision. The strong ones offer Take it; every one offers Not worth it. A row opens What Ask Tightly saw: the evidence (When, Ref, What, Gap), the back-test, and what would be written, its name and description. Its basis line says the evidence is your own actions in Tightly and nothing beyond mail linked to orders. ## What to do Write a skill opens a conversation with Ask Tightly that drafts one. Start from one of ours opens four templates (chasing unacknowledged orders, matching shipment notices, warning on thin cover, chasing short ships); Start saves one as your own draft skill and opens its page. Approve resumes a parked run from where it stopped; Reject cancels it and nothing further is written, and the row keeps its receipt where the buttons were. Take it hands the pattern to the Ask Tightly panel as the start of a skill-writing turn; nothing is saved until you save the draft. Not worth it dismisses it and the same pattern is not raised again. Publishing, promotion and every edit happen on the skill's own page; nothing on this list publishes, deletes or reorders. ## When it is empty or failed > No skills stands where the list would be when there is no skill and nothing waiting. > Your skills could not be read just now. > Your inbox could not be read just now. The last stands in the Waiting on you section when the skills read landed and the inbox's did not, so whether a decision waits is not guessed. With nothing noticed, the Noticed section reached by its address reads > Nothing noticed yet; Ask Tightly raises one when it sees the same work repeated. --- # Skills and a Lite plan Source: https://docs.tightly.io/help/ask/skills-on-lite Reviewed: 2026-09-07 ## What it is A skill is something a person writes once and Tightly then runs without them: it watches for a thing to happen, works out what to do about it, and either tells someone or writes the change itself. Skills are not part of Tightly Lite. Writing one, publishing one and letting one run on your behalf belong to the editions above it. What Lite's Ask Tightly does instead is narrower, and it answers rather than acts. It shows the ten fixed charts, reports a bug for you, and answers a how-to question from the help centre with a link to the page the answer is about. It performs no act and changes nothing. ## How Tightly decides it By the plan you are on, and by nothing about your seat. A Tightly installed from the Shopify App Store is on Lite whatever else is true of it, and Skills is not part of what a Lite plan carries: the Skills addresses are not in the rail, and every skills request is refused on Lite. Your role is a separate question and it does not come into this one. On Lite an admin has the same rooms a member does; the plan decides which rooms exist, and the role decides who may write in them. ## The words on the face Nothing inside Tightly on Lite sells you a plan. A Skills address typed on Lite shows the page's name and one sentence naming the plan the room is sold with, > Sold with Tightly Essentials+. with no list of what it holds and no way to buy. The plan was settled by how Tightly was installed, rather than by anything a person picks inside Tightly. Where you have read about Skills somewhere else in this help centre, you are reading an article written for the editions that carry them. [Tiers](../platform/tiers) is the article that says which edition holds which rooms. ## What you can do about it Some things run without you on Lite already, and it is worth knowing which. [Smart Replenishment](../replenishment/smart-replenishment) recalculates what to reorder after each sync of your data, so the answer is ready when you open it. Notifications reach you when a purchase order goes overdue or your sync stops. [The Board](../ask/lite-board) draws its ten fixed charts from your own data. None of these needs setting up and none of them is a skill you have to write. For the jobs that are yours to decide, [Ask Tightly](../ask/ask-tightly) tells you how to do them and links the page where they are done; the press is yours. Where a job is one you do by hand every week and would rather hand over entirely, the editions above Lite are where that lives. Nothing inside Tightly on Lite sells you one. ## Glossary line A skill is something that runs without you, written with Ask Tightly in a conversation; Tightly Lite has none, and everything on Lite writes on a person's press. --- # Stamps: Live, Data as of, Not yet refreshed, Snapshot Source: https://docs.tightly.io/help/ask/stamps Reviewed: 2026-09-07 ## What it is A stamp is the one claim an answer makes about when its figures were read. Every charted answer and every kept answer carries one. The stamp is how you tell a number Tightly just read from a number it read last week, and a number that can be read again from words that cannot. ## How Tightly decides it A read that happened in your browser is stamped with its time: the same question was run again against your records, and the figure on screen is the result. Before that, a kept answer is dated by the day the server last ran its question and stored the result; that date is printed only when the server wrote one, never composed on the page. Not yet refreshed means the answer has been kept but its question has never been run since. Snapshot is the stamp of a written answer, which has no question behind it to run again, so it is dated by the day it was saved. While a read is in flight the stamp says Re-running…, and where a date cannot be read at all it says Not dated. Two words sit beside the stamps and are not stamps. A live read runs the answer's own question again, exactly as it was, with nothing reworded; the Board and the workspace do it on open. Refresh asks the server to run it and store the result: an answer that carries its question is run again as it was, while an older saved chart without a stored question may be asked again from its words. Saved table snapshots are excluded: they keep the selected answer rather than asking again. A saved table answer retains the original answer date, columns and rows. That date records when the answer was produced, not when you later opened or saved it. Saved tables show a Snapshot stamp and are excluded from automatic refresh, Refresh all and individual Refresh controls. Ask again for an updated answer and save it separately if needed. ## The words on the face | Word | Where it prints | What it claims | |---|---|---| | Read {day} · {time} | An answer in a conversation, and the workspace head | The figures on screen were read at that moment | | Dated {day} | The workspace head before its live read lands; the Board's table | The server last read the figures that day | | Live | The Board's table, whose head carries the one as-of | A live read landed in this browser | | Data as of {day} | The Board's cards, before a live read | The server last read the figures that day; today it reads Data as of today at with the time | | Not yet refreshed | The Board, both views | Kept, never run since | | Snapshot · saved {day} | The workspace, for a written answer | A written answer, dated by its saving | | Saved with the answer | The Board's table, for a written answer | Its date is the Asked date beside it | | Re-running… | Any of them | A read is in flight | | Not dated | Any of them | The date could not be read | The Board's cards spell two of these their own way, for a live read and for a written answer: > Live — read at {time} > Snapshot — saved {day} On the cards a kept answer last read more than two hours ago carries an amber mark and the words not re-run since after its date, and a failed refresh adds Latest refresh failed. Try again. The table says Refresh failed under the stamp instead. Movement travels with a stamp on the Board: the change since the figures were saved, Unchanged, Restated, Not comparable where the shape changed, and First read where nothing was saved to compare against. Direction is a glyph in ink, never a colour. The knowledge base's own stamp is a word on a different kind of thing: an article printed as an answer carries Reviewed with the day a person approved it, and Being updated beside it while its sources have moved and the text is the last approved. It stamps the article, not a figure. ## What you can do about it Open the Board: every answer that carries its question is read live, and one never refreshed or older than two hours is refreshed once by itself. Refresh all refreshes the rest. On the workspace the stamp turns from Dated to Read as the live read lands. A Snapshot cannot be read again; ask the question again to get a live answer. Where a stamp reads Not dated, the record carries no readable date and nothing on the page will invent one. ## Glossary line A stamp is the one claim an answer makes about when its figures were read: Read, Live, Dated or Data as of, Not yet refreshed, or Snapshot. Saved snapshots may also include a chart. Their chart and saved rows stay readable without a last-refreshed date; the saved date and the note saved with them give the context, without claiming a live reading. --- # The Ask Tightly panel Source: https://docs.tightly.io/help/ask/the-panel Reviewed: 2026-09-24 ## The question this page answers Can I ask about the page I am on without leaving it, and will the answer know where I am standing? The panel is Ask Tightly beside every working page. It carries the same conversations as the Ask Tightly page, and the page you are on rides every question, so on Essentials and above a question asked from a purchase order is answered about that order. On Tightly Lite the panel answers how-to questions about the page, draws the ten fixed charts and opens doors, but does not read the order itself. It answers the way the Ask Tightly page does: a question that only asks for a page gets that page's door at once, a how-to question is answered from the help centre, and an answer about how Tightly works cites an article or says The knowledge base has no article for that. ## What you see ::: shot page ::: The panel's head reads Ask Tightly, followed by the conversation's name once it has one. At its right sit the button that moves the panel to the other side, Pin (Unpin while pinned) and Close. Under the head is one row of doors. New conversation stands once a conversation is open. History {n} stands when there is at least one past conversation. Open in the workspace stands whenever no help article is open, and opens the conversation on the Ask Tightly page at its last answer. The three-dot button at the end of the row opens Your requests: what you have passed to the Tightly team, each with its reference, where it stands and who will reply by when. Before anything is asked, the body reads Ask about this page, with Start with under it. On Home the box itself reads Ask Tightly about your stock, your orders or your buy plan on Pro, ends with your budget on Essentials and Essentials+, and on Tightly Lite, or while the plan is still being read, reads Ask Tightly about your stock, your sales or how Tightly works. On Home and everywhere on Tightly Lite, Start with offers three plan questions. On Lite: > How do I read my stock figures? > How do I report a problem? > Where can I check my orders? On Essentials and Essentials+ they ask which products need reordering, which orders are overdue and how much purchasing budget remains; on Pro, which commitments need attention, how much is open to buy and which buying decisions are waiting. Elsewhere the page offers its own questions, and where you have pressed a row or opened a month, the first question is about that. In a commitment's room a chip stands above the box with the commitment's name and its stage, for example pre-season · locks in {n} days. While it stands every question is about that commitment, and the stage's questions lead Start with. Its cross, Ask company-wide instead, drops it for this commitment only. ## Pinned or floating Pinned, the panel stands beside the page and the page narrows to make room; on a narrow screen the panel narrows toward its minimum, then the rail drops to icons, and only then does it float. Unpinned, it floats over the page. Its width is dragged on the inner edge between 340 and 840 pixels and remembered, as are its side, whether it is pinned and whether it is open. Under 474 pixels wide a charted answer draws its title, lead sentence and stamp with the door Open in the workspace; the full block draws from 474 up. ## What to do 1. Press **Command+J** (or **Control+J**) to open and close the panel from anywhere it may stand. 2. With the panel open, the same keys put the caret in the box; pressed again in an empty box, they close it. **Escape** in an empty box puts a floating panel down. 3. Press a **Start with** row, or type your own question and press **Ask**. 4. On Essentials and above, press an act chip to request an act; the press is a request, and a write asks first and waits for your **Yes** or **No**. 5. Where a page head carries a help door, press it, or type a question mark outside a box, to open the panel on the page's article. 6. Press **Back to conversation** to return to what you had open before the article. ## When it is empty or failed The panel stands down on the Ask Tightly page and the Board, where the page is the assistant; it stays beside a kept answer's workspace, where every question is about that answer. On those two it is not drawn, the head's mark is hidden and no width is kept. Leave, and it comes back as you left it. On Setup it floats over the wizard rather than beside it. Errors read as they do in the conversation: the sentence in ink with Try again, and an answer you stopped with Retry. --- # The workspace Source: https://docs.tightly.io/help/ask/the-workspace Reviewed: 2026-09-07 ## The question this page answers Can I adjust this one number, read it against something else, ask about it, and decide whether the Board should keep the change? The workspace is one kept answer opened on its own page. Everything you change here is scratch until you press Update saved insight, so you can try a grain, a filter or a comparison without moving what the Board holds. ## What you see Saved inventory, purchasing and stock-projection reports offer **Refresh** when they support a fresh reading. It keeps the saved scope and updates the same report on the Board and Home. A failed refresh keeps the saved figures and shows the failure. **Download CSV** uses the report's supported export. A saved Weekly trade report keeps its selected week, comparison week and grouping when reopened. The head is the answer's title, which you press to rename, and one sentence on the record's standing: Re-read just now, with the change since the last read and the day of that read, or why it could not be re-read, or A written answer, never re-run. At the right stand the basis, the unit of the answer on screen, and the stamp: Dated with the day the saved figures were read until the live read lands, then Read with the day and the time; Re-running… while a change is read. Under the head stand the doors Board and Open the conversation, and on the right the acts: Adjust this answer, which opens a drawer beside the page holding Measure, Filters, Ordered by and How many. Below is the full answer block: the chips Period, Read by, Split by, Compare and Threshold; a chip for each measure and filter it shows; the plot; The numbers; the Basis table; Resources. A chip you changed reads Yours, with a cross that lets it follow the question again. The block's menu holds Remove from board, Add to Home and Download CSV when rows are available. Visuals and Table switch between the plot and its rows without changing the saved question. The record title appears once; a chart with a different title keeps its own caption. Charts and tables retain their accessible names. The Ask Tightly panel stands beside this page, and every question asked there is about the answer on screen. Its Start with offers What moved this since it was saved?, Where did the change come from? and Should the board keep this view? The moment the question on screen differs from the record, the head gains the badge > Adjusted · board unchanged and the primary Update saved insight, and the chips row carries Undo naming the last change. The view you are looking at, with the comparison and the threshold you chose, rides in the address, so a link you copy opens the same view for a colleague while the Board keeps its record. A written answer renders its text at reading measure under its stamp, Snapshot · saved with the day, with Remove from board beside it and no chips. Its saved links carry the line > These are the words as saved; what they point at is the live version. ## Saved operational tables A kept allocation, policy or stock-evidence table can contain the rows read when the answer was saved. Those rows remain available when you reopen the answer. If the answer has no supported live query, it is a snapshot: its saved figures do not recalculate when stock or a policy changes, and live adjustment controls are not offered. Ask for a new reading when you need the current position. Links from the snapshot may open the current underlying record. ## What to do Change the question with a chip or a docked control; the answer re-runs live and the badge appears. Undo steps back one change at a time down to the record. Update saved insight writes the question on screen to the Board's record, and the head reads Board updated at with the time. A refusal prints the server's sentence under the acts and nothing is marked saved. Type in the panel to ask about this answer. Rename in the head. Nothing on this page asks the engine to think again on open, and nothing writes without a button. ## When it is empty or failed > No longer on your board. > This answer could not be opened. In both cases the page shows the Board door and nothing else. A link whose view could not be restored shows the record instead, with the badge Saved view shown and, on hover, The view in this link could not be read. A live read the server refused keeps the saved figures and puts its sentence in the head. --- # The families and attributes engine Source: https://docs.tightly.io/help/engines/families-and-attributes Reviewed: 2026-09-26 ## What the families and attributes engine is The engine keeps each product's family, its variation and required attributes, and measures its price band and size curve. Its jobs: Attribution, every sync; Analogs, each night at 04:30 UTC; Image matching, each night at 03:30 UTC, reading product pictures. Look-alikes are matched on text; a matching picture is shown as a reason, not as part of what decided it. Its pages: Catalogue, Families, Analogs and the product's Attributes drawer. ## What a family is and what a join changes A family is a group of products that vary the same way. On Families a family declares its shape, one of Colours only, Sizes only, Colours × sizes, One of a kind, or another way you name, such as lengths or packs, with its steps in order. A family also carries a template: the attributes every product in it must have. Placing a product, a store listing or an account's order line is a join. What a join changes downstream: - Catalogue can say what a product is missing. A product in no family reads No family set, and nothing can be called missing. - On Tightly Pro, a family's shape is the columns of the buy grid on a Commitment, in the family's order, and a broken size run is judged against the family's declared steps only. - The baseline engine's third rung reads the account's sell-out of the other styles in the same family. - An order line placed on a product joins the money on it to that product. Families do not change forecasts. Look-alikes match within a category, not a family. ## How attribution measures a price band and a size curve Attribution runs inside every sync, and never fails it. - **Price band.** Good, better or best: the thirds of price within the product's category. A category with fewer than five priced products or no spread in price cannot band, nor can the catch-all category. The band is written as auto, only where nobody declared one, and cleared when its reason goes. - **Size curve.** The share of a style's units each size took over the last year, counted only on days when the whole size run was in stock, and on full-price sales where there are enough. It needs at least two such days and thirty units; short of that no curve is published, and where the style sold enough to be worth a curve the refusal is recorded with its reason. It is kept beside, and never over, a size curve you declared. - **Missing attributes.** Each product's count of required attributes its family asks for and it does not have yet, refreshed every sync. ## The words on the face | Word | What it means | |---|---| | declared | you set it; it stands over anything measured | | measured · {n} days | attribution read this curve from that many clean days | | auto | attribution filled this band | | Not yet measured | attribution has never run for your catalogue | | Refused | attribution looked and would not curve it; the reason is on hover | | Too few sales · Category too small · No size option | why a curve or a band is absent | | No band | no price band stands | | Not on your plan | the plan does not include the engine | | You · Connector's · Not in this family | who owns an attribute, in the Attributes drawer | ## Who owns an attribute, and what you can edit Typing over a value the connector filled claims it: the attribute reads You and the connector leaves it alone. Hand back to the connector gives it back, and the next sync refills it. You can set a product's family, declare its price band and size curve, and type any attribute its family asks for. A viewer reads; a member or an admin edits. ## The engine's state sentences Full sync is due daily at 04:00 UTC; daytime updates are incremental. Existing exceptions retain their cadence. Attribution follows that slot, or a configured independent refresh schedule. Source sync health can be Late or Stale before a job is due; Running keeps its limit. Look-alikes are Late six hours past their window and Stale after thirty. Character for character: > Never ran · Attribution has not run for this catalogue yet. > Stale · Last measured {as_of}; no sync has completed since. > Partial · Measured {as_of}; some styles could not be measured. > Failed · Attribution did not finish today; showing {as_of}'s values. > Nothing yet · Nothing to measure yet: no sized variants, no priced lines. > Not on your plan · Not on your plan. > Never ran · Look-alikes have not run for this catalogue yet. > Stale · Look-alikes were last refreshed {as_of}. > Partial · Look-alikes refreshed {as_of}; some lines were not proposed. > Failed · Last night's look-alike run did not finish; showing {as_of}'s. > Nothing yet · No new product is waiting for a look-alike. ## What each plan sees Catalogue and Families are included with Tightly Essentials+ and Tightly Pro; on Essentials the rail marks both for sale with Essentials+. Analogs is on the Pro rail, and on Essentials and Essentials+ the rail marks it for sale with Pro. Lite carries none of them. A refused read of Catalogue or Families says: > This organisation's plan does not include Product data. It is sold with Essentials+. See also [Forecasts for products that have never sold](../engines/new-product-forecasts.md), [Families](../product/families.md) and [Analogs](../product/analogs.md). ## Glossary line The families and attributes engine keeps each product's family, shape and attributes, and measures its price band and size curve, saying which it measured. Local archives exclude look-alike evidence; restore reverses exclusion. --- # The forecasting engine Source: https://docs.tightly.io/help/engines/forecasting Reviewed: 2026-09-24 ## What the forecasting engine is The forecasting engine predicts each line's daily sales. Source updates, forecast calculation and confidence have separate run times. Monday's accuracy pass at 06:30 UTC scores the seven completed local days; the 06:45 UTC re-score selects methods from each line's history. Its page is [Demand forecasting](../demand/demand-planning), on every plan. ## When the forecast is built and refreshed Forecast engine status shows the cadence. With daily scheduling, a full run is due at 04:00 UTC; intervening syncs update source data and dependent figures without rebuilding every forecast. Source pauses and manual or historical import controls still apply. Recalculate now uses stored sales and existing methods; it fetches no source data and does not rerun the re-score. An explicit incremental recovery also keeps the existing curves. Approved baselines retain their quantities, dates and references. Supported evidence changes refresh execution without another approval. Missing or conflicting evidence holds the affected figures; it never becomes zero demand. ## How far ahead the forecast reaches The forecast reaches 58 weeks ahead, with daily quantities per variant, location and channel. Demand forecasting adds those days into periods by the window you pick: a window of twelve days or less reads by day, under twelve weeks by week, and anything longer by month. A line's Forecast range, in its drawer, is the band its sales are expected to land inside about eight weeks in ten, drawn from how far the methods missed on your own past weeks. ## How the forecast is made for each line A line with enough history is forecast from its own sales by the method the Monday re-score chose for it. A line too short for a re-score keeps the method chosen for lines like it, still reading its own sales. A product that has never sold is forecast from look-alikes, past products that sold like it, on Essentials+ and Pro, which include Analogs. On Lite and Essentials none is proposed, so such a product has none to follow and says so. - [Forecast methods and the Monday re-score](../engines/forecast-methods): which methods exist and how one is chosen. - [Forecast accuracy](../engines/forecast-accuracy): how the forecast is scored against what sold. - [Confidence as a word](../demand/confidence): how each line is graded. - [The forecast's words](../demand/forecast-words): what each chip on a line means. - [Manual forecast](../demand/change-the-forecast): typing your own figure over the system's. Within a commitment, active forecasting and replenishment use eligible DTC consumer demand. Customer orders remain separate buying requirements. Supported account sell-out forecasts belong to the account’s Plan in Connect; a customer-order channel alone does not supply consumer evidence. ## What each plan sees of the forecast Forecast methods, confidence and accuracy are the same on every plan. Pro adds season and commitment scope and re-scores declared styles within their selling dates. The Analogs page is on Pro; other plans with look-alike entitlement use automatically chosen sources. ## The forecast's as-of and state sentences The as-of marks the forecast run; Details holds the source sync. Incremental updates do not reset the full forecast's age. Daily forecasts become Late after 26 hours and Stale after 48 hours without a successful full run. Source freshness retains its four-hour promise. The engine supplies these state messages: > The forecast has not run for this tenant yet. > Forecast as of {as_of}; a run was due {due}. > The last run rewrote {written} of {expected} lines; the rest are older. > Today's forecast run did not finish; figures are as of {as_of}. > No sales have synced yet, so there is nothing to forecast. > Forecasting is off for this tenant. > Paused with the connection; the forecast waits for the sync. > This tenant is not on the forecast run. On Demand forecasting that sentence is in the Forecast performance drawer. ## What you can do about the forecast Recalculate now stands beside the engine's sentence in the Forecast performance drawer. A seat that can write may press it, once every two hours for your tenant, and it is refused while a run is already going. A paused forecast offers Integrations instead, because the sync is what stopped. To change a figure, type a Manual forecast on Demand forecasting. Ask Tightly can explain the forecast and prepare a change for exact variants, channels and dates. It saves only after you confirm, then provides the same scoped forecast to check. It cannot press Recalculate now for you. Nobody picks or pins a line's method: the Monday re-score decides it from your own sales. ## Saved assumptions A declared look-alike takes precedence over automatic sources for its channel and leaves the source product active. Other channels keep their own source. Check the result after recalculation; saving the mapping alone does not mean the forecast has refreshed. Reference evidence remains distinct from the new product's own measured history. A manual forecast adjustment belongs to its selected products, accounts or channels and dates. Clearing it restores the current calculated basis. Historical sales imports do not create forecasts that were never recorded; historical comparisons require recorded forecast vintages. Constructed demo comparisons illustrate behavior; they are not a customer's measured forecast record. A forecast change places no order. ## Glossary line What the forecasting engine expects each line to sell, with its basis and confidence. Accuracy is shown only for a measured selection. Where the selected commitment, SKU or account has no scored result, accuracy remains unavailable. --- # Price sensitivity and the price response Source: https://docs.tightly.io/help/engines/price-response Reviewed: 2026-09-26 ## What it is Price sensitivity is the pricing engine's tier for one variant: how far sales move when the price moves. The tier is one of High, Moderate, Low, Inconsistent or Still learning, and a variant the engine holds no tier for reads Not scored. Beside the tier the engine prints a Confidence and a Basis. The tier is read from the price response of the variant's pool, the same price response Markdowns and every discount figure use, so the three cannot disagree about one product. The basis is read from the prices customers actually paid for this variant. It is part of [the pricing engine](../engines/pricing). ## How the tier is measured The tier is set inside every sync for every variant that sold in the last two years. It never measures anything itself: it reads the price response already held for the variant's pool, which is its product family where the family has two or more variants, else its category where that has two or more, else the whole book. That price response is measured by a scheduled job from the prices paid and the units sold across the pool, and served for up to seven days. - The pool could not identify a price response of its own: Still learning, with no confidence. - The price response's range reaches zero, so the history cannot confirm that price moves sales at all: Inconsistent. - Otherwise the size of the price response decides: a 1% price move changing units by more than 2%, High; by less than 1%, Low; in between, Moderate. Confidence is High for a price response measured on the pool's own history with a tight range, Medium for any other measured one, and Low where the pool was too thin and its price response was drawn toward a wider pool's. A pool with no price response held yet is asked for one, at most ten pools each sync and the ones with the most variants first, and until it has one its variants keep the tier they were showing, with its own date, so the column never goes blank while the job catches up. A variant that was showing no tier stays Not scored. A tier whose variant has not sold in two years is removed on the next run. A failed pass never fails the sync. ## How the basis is decided The basis is measured on each view of the variant, from the price actually paid per selling week, weighted by quantity, in one currency. It asks whether there is enough price variation, for this variant's own swing in weekly units, to measure a price response to within a set precision. - Measured on this item: the variant's own weeks carry it. - From its cohort: the variant is too thin, and every variant of the same product pooled together carries it instead, so the figure describes the product. - Not enough price history: neither can. An item that sold in fewer than two weeks, sold at one price throughout, or sold the same quantity every week cannot be measured, and the section says which in a sentence of its own, for example: > Sold in 1 week. A price response needs at least 2 selling weeks before there is anything to compare. ## The words in the Price section On a variant's Price section the rows read Tier, Confidence, Basis, Price changes in 12 months and Sales through. Confidence reads High confidence, Medium confidence, Low confidence, or Not stated. Where the basis is not measured, a Category reference row gives a published starting point, worded like 2.0% fewer units for 1% on the price, with a hover saying whether it is published for this category, extrapolated from the nearest category, or a general default, not measured for this category. Apparel has no published figure and takes the default. Where the tier is measured, the section's one sentence names the pool it belongs to, for example: > Across this category, a 10% cut moves sales about 17%. High confidence. Where the tier is missing or from its cohort, the evidence sentence takes its place. If the read fails the section says The price read did not answer. with Try again. ## Where you see it, and what you can do Every plan sees the Price section and the Price sensitivity column and filter on Sales performance, where a line with no tier reads Not scored. Nothing is pressed to measure a tier: the pool's price response is measured by the scheduled job, and the next sync reads it. Read the Basis before acting on a tier, and use Ask Tightly beside the section's title to ask what to do about it. ## Glossary line Price sensitivity: the pricing engine's tier for how far sales move when the price moves, read from the variant's pool. --- # Provenance words Source: https://docs.tightly.io/help/engines/provenance-words Reviewed: 2026-09-07 ## What it is Computed, declared, measured, read in, or the name of the engine that made it: where a figure came from. A provenance word is the one sub-word a figure may carry under or beside it, or in the column's heading standing for every cell beneath. Pressing it opens the trace: the read the figure resolves to, that read's as-of as words, and the inputs a derivation was computed from. Nothing on a page is typed by hand; every figure resolves to a read or a named derivation, and the word says which. Two more words ride beside it on an engine's figure: the engine's basis word, which says what the engine stood on to produce it, and its confidence word, which is always a word and never a percentage. ## How Tightly decides it The words are the places a figure can come from. Computed is a derivation Tightly made on the page from other figures, such as open to commit from the ladder. Declared is a number a person typed and signed, such as the five terms of a plan. An engine's own output carries that engine's name instead: forecast, grades, the buy, price response, attribution, look-alikes. Measured is what actually happened, counted from your sales or your stock. Read in is taken as it arrived from a connected system: a purchase order, stock on hand, a price. Each engine adds its basis. The forecast says Own record when a line is forecast from its own sales, Reference method when its own sales are read with a method chosen for products like it, From a predecessor when it has no record of its own and past products that sold like it stand in, and Fallback method when the chosen method could not run this time. A grade says measured, reference or brand. A price response says measured, reference or prior. An attribute says declared, measured, auto, default or connector. A buy line says from system, from a predecessor, past the forecast or lower confidence. A weekly verdict names the declaration it read or the header it mirrors. ## The words on the face | Engine | Basis words | Confidence words | |---|---|---| | Forecast | Own record · Reference method · From a predecessor · Fallback method | High · Medium · Low · New; a Low line prints Watch closely, with its reasons on hover, and a New line prints New item, with its weeks of sales on hover | | Grade | measured · reference · brand | the basis word is the confidence word | | Price response | measured · reference · prior | high · medium · low; the tier reads High · Moderate · Low · Inconsistent · Still learning | | Attribute | declared · measured · auto · default · connector | a look-alike high · medium · low; a placement almost certainly · very likely · likely · below the floor; a size curve measured with the days it read | | The buy | from system · from a predecessor · past the forecast | lower confidence | | Weekly verdict | the declaration or the header it mirrors | firm · thin · not measured | Where a clear majority of a column's cells would carry the same word, the header carries it instead, and those cells keep the word out of the ink and hand it back under the pointer; a cell with a different word keeps its own. Where a figure has no provenance because nobody measured it, the cell says so with an absence word, Not measured or Not on file, never a dash. ## What you can do about it Press the word for the trace when a figure surprises you: it shows the read, its date and its inputs, so you can see whether the number is old, a reference or declared before you act on it. A line reading From a predecessor or Fallback method is an estimate standing in for a record; on Tightly Pro, give a new product a better look-alike on Analogs and the next run reads from it. A line reading declared is yours to change, on Declaration for a commitment or on the product for an attribute. Confidence as a word and The forecast's words carry the fuller reading of each engine's own vocabulary. ## Glossary line Computed, declared, measured, read in, or the engine's name: where a figure came from. --- # What each engine says, state by state Source: https://docs.tightly.io/help/engines/served-sentences Reviewed: 2026-09-07 ## The sentence One sentence per engine per state, served whole and printed character for character on the page that reads the engine, in the Inbox row and in an answer from Ask Tightly. Each engine's lines run in one order: never ran; running, where the engine speaks while it runs; stale; partial; failed; then nothing yet, not on your plan, paused, not on the run. A word in braces is filled by the page; where it cannot be, a shorter sentence naming no figure is served. The forecast: > The forecast has not run for this tenant yet. > Forecast as of {as_of}; a run was due {due}. > The last run rewrote {written} of {expected} lines; the rest are older. > Today's forecast run did not finish; figures are as of {as_of}. > No sales have synced yet, so there is nothing to forecast. > Forecasting is off for this tenant. > Paused with the connection; the forecast waits for the sync. > This tenant is not on the forecast run. The grades: > Grades have not been made for this account yet. > Grades are from {as_of}; the refresh since then did not run. > Some grades did not refresh today; each row carries its own date. > Today's grading did not finish; showing {as_of}'s grades. > No account reports sell-out yet, so there is nothing to grade. > Grading is off for this tenant. > Paused with the connection; grading waits for the sync. > This tenant is not on the grading run. The buy, whose fresh line is said only when a run wrote nothing to order: > The buy has not been worked out yet; it follows your first sync. > Working out what needs ordering; figures are as of {as_of}. > Nothing to order over the next 14 days; every line is covered. > Recommendations are from {as_of}; the run since did not finish. > Cover was refreshed {as_of}; some quantities are older. > Last night's run did not finish; figures are from {as_of}. > No forecast has run yet, so the buy cannot be worked out. > Working out the buy is off for this tenant. > Paused with the connection; the buy waits for the sync. > This tenant is not on the buy run. Price response: > Price response has not been measured for this tenant yet. > Last measured {as_of}; no sync has reached it since. > Measured {as_of}; some items could not be measured. > Price response was not measured today; showing {as_of}'s. > No price has moved yet, so there is nothing to compare. > Price response is off for this tenant. > Paused with the connection; pricing waits for the sync. > This tenant is not on the price response run. Attribution: > Attribution has not run for this catalogue yet. > Last measured {as_of}; no sync has completed since. > Measured {as_of}; some styles could not be measured. > Attribution did not finish today; showing {as_of}'s values. > Nothing to measure yet: no sized variants, no priced lines. > Not on your plan. > Paused with the connection; attribution waits for it. > This tenant is not on the attribution run. Weekly verdicts: > No weekly verdict has run yet. > Scoring last week now; started {started}. > Last week is not scored; the last verdicts are from {as_of}. > Last week was scored; some commitments could not be read. > Monday's weekly run did not finish; it retries tonight. > Nothing is declared, so nothing is scored. > The weekly verdicts run on an active plan; this is paused. > This book is not on the weekly run: its source is paused. > This book is not on the weekly run: it has no source. ## What it means The sentence says what did not happen and what date the figures on the page are from. A fresh engine says nothing; its as-of carries the time. Late says nothing either and only moves the as-of clause. The sentence prints at Stale, Failed and Partial, when an engine has never run, when nothing was promised, and while the buy or the weekly verdicts run. It is never a failed read: when the page could not learn an engine's state, the figures keep their own stamps, the as-of line reads engine state not read, and no sentence prints. The look-alike run's sentences are in The families and attributes engine; your sales' are on Integrations. The Monday re-score and the accuracy pass carry sentences of their own, but no page prints them yet; they join this list when a face does. ## What to do next Paused is cleared on Integrations, where the connection is resumed. A Stale, Partial or Failed forecast offers Recalculate now on Demand forecasting, once every two hours. Every other engine retries on its next run and closes the Inbox row it raised. Nothing yet clears as the input arrives: sales, an account's sell-out, a price move, a declaration. Not on your plan and Not on the run ask nothing of you. ## Who to ask Ask Tightly on the page answers from this article, with the state it can see. Tightly's own staff read the same state on their engine view, with the run behind it. --- # The verdicts engine Source: https://docs.tightly.io/help/engines/verdicts Reviewed: 2026-09-07 ## What it is The verdicts engine reads each declared term of a commitment against what traded, once a week, and says what happened. Its only sentence has one shape: you declared this; we measured that, at this grain, over this week; the gap is worth this much. It never produces a new number you must react to. It does not re-forecast, suggest a replacement glidepath, adjust a declaration or open a planning grid; those would be a planning engine, and this is a measuring one. The only thing it writes is its weekly verdicts. Its faces are All commitments, a room's five and This week, Hindsight, the desk's readings, Home and Today. ## How Tightly decides it The engine runs every night at 00:30 UTC. The week it scores is the retail week that closed on Saturday, and scoring starts on Monday's run; the runs from Tuesday to Saturday only fill in verdicts that week is still missing, and Sunday's run scores nothing. It walks every tenant with an active connection and an active plan, and for each active commitment it reads seven terms against the closed week: the availability floor, the sell-through pace, the margin floor, the buy envelope, the chase reserve, the order book's coverage and the terminal stock ceiling. Each verdict reads on track, needs review or urgent. A term's tolerance is the one declared, or the engine's default where none was declared. Before any term is tested the engine asks where the week sits in the commitment's window. Until the window opens, availability, pace and margin are not applicable yet, with the window's open date named, never a miss; the envelope and the order book are read from the start, and the terminal stock ceiling only once the window has closed. Every verdict carries the week it read, when it was scored, the grain it measured at, the size of the population it read and where its tolerance came from. A term that could not be read, or whose population moved too far since last week, is recorded as not measured with the reason, never as a miss. A verdict once written is never rewritten; a run that did not finish leaves the missing verdicts for the next night to fill. ## The words on the face The verdicts are one of two engines whose running state is a sentence, because the week being scored is worth naming. Where the run is not fresh, All commitments and the desk's This week reading print the engine's own sentence, character for character. Running: > Scoring last week now; started {started}. Stale: > Last week is not scored; the last verdicts are from {as_of}. Partial: > Last week was scored; some commitments could not be read. Failed: > Monday's weekly run did not finish; it retries tonight. Nothing yet (no active commitment): > Nothing is declared, so nothing is scored. Not on your plan (the plan is not active): > The weekly verdicts run on an active plan; this is paused. Where no run has been recorded at all, the head reads: > No weekly verdict has run yet. On the room's This week the five read on track, needs review, urgent, not measured or not applicable yet, with the declaration each verdict read beside it. One amber mark belongs on that table, beside the word of the single number most at risk: a declared promise at risk, once per fact. Late, Stale and Failed carry no dot, because a late engine is a fact about the platform and not about your promise. ## What you can do about it Nothing is pressed to score a week; the engine runs each night and a failed Monday is picked up by the following nights on its own. A Stale or Failed week puts one row in your Inbox, which closes itself when a run succeeds. Declare a term on Declaration and the next Monday's run scores it. Read a term that needs you on the room's This week, then act on the desk: release the chase, amend the declaration with a second signature, or hold. At close, Hindsight reads every scored week of the season and says, for each declared term, in how many weeks it landed inside its band and whether it was kept or missed. Weekly verdicts and Variance tiers carry the reading of each word. ## Glossary line The verdicts engine's Monday reading of each declared term against what traded. --- # API keys Source: https://docs.tightly.io/help/settings/api-keys Reviewed: 2026-09-07 ## The question this page answers Which keys can reach Tightly from outside, what can each one read and write, when was each last used, and how do I make, replace or stop one? API keys sits in the Developer group of the settings rail, beside Metrics; the `Product data API` row under `Reads from Tightly` on Integrations opens the same page. How to call the API, which scopes each operation needs, the error codes, rate limits, versioning and the MCP door are the developer portal's: start with its Authentication, Scopes and MCP guides and its Your first request page. ## What you see One table, keys that can still reach Tightly first, then newest Created first: **Label**; **State**, `Active`, `Expired`, `Stops {day}`, `Stopped {day}` or `Revoked {day}`; **Last used**, `Today`, a day, or `Not used yet`; **Key**, the stored prefix and the last four characters and never more; **Reads** and **Writes**, the resources in their customer words, or `Nothing`; **Created**, the day, with who pressed it on hover or `Nobody was recorded`; **Expires**, a day or `Never`. Once any key is narrowed to one Tightly Connect account, an **Account** column stands after Last used, reading the account or `Whole tenant`. The footer counts every key ever minted, revoked ones included. With no key at all the table reads "No key reaches Tightly yet." The resources are `Products`, `Product data`, `Stock`, `Suppliers`, `Purchase orders`, `Sales`, `Orders`, `Returns`, `Stocktakes`, `Sandbox`, `Movements`, `Accounts`, `Order book`, `Sell-out`, `Planning`, `Cash`, `Reports` and `Metrics`. `Suppliers`, `Purchase orders`, `Orders`, `Returns`, `Stocktakes`, `Sandbox`, `Order book` and `Sell-out` take writes; the rest are read only. A key belongs to this tenant alone: a keyed request takes its tenant from the key and never from a header, so it cannot reach the other tenants on your company. A write scope carries its read, so a key that may post purchase orders can list them. ## What to do **New key** opens a drawer. Label is required. **Reach** is a matrix of one row per resource, each `None`, `Read` or `Read and write`; a resource this plan does not include shows `Sold with {plan}` in the cell and no control. Where the plan holds Tightly Connect and there is an account to name, **Account** narrows the key to one account or leaves it on `Whole tenant`. **Expires** offers In 30 days, In 90 days, In a year (the default) or Never. **Allowed addresses** is optional; empty reads `Any address`. The consequence stands before Create: "Anything holding this key can do what you ticked, as {tenant}, until it expires or you revoke it.", naming the account first where one was chosen. The receipt is the whole key, once, with Copy and the sentence "Copy it now; Tightly cannot show this key again." **Sandbox**, beside New key, creates an empty second tenant on the same plan, connected to nothing, whose keys start `tly_test_`; the receipt gives the command that fills it. **Replace** mints a new key with the same or a re-ticked reach and stops this one after a cutover you choose, Now, In 1 hour, In 24 hours (the default) or In 7 days: "A new key is created now; this one keeps working until {day}, then stops." Both keys work through the cutover. With Now it reads "A new key is created now; this one stops working the moment you press Replace." A replaced key keeps its account. **Revoke** stops a key at once and keeps the record: "Anything using this key stops now; the record stays." The decline is Keep it. **Usage** opens what the key did: calls and refusals over the last seven days, a chart of calls per day over thirty days, one row per operation in its customer name with its calls and refusals, the limits the key runs under, and Find a request by its request id. Admins mint, replace, revoke and make sandboxes, because a key outlives a person; everyone else reads the table and opens Usage, and "Admins change this" stands once where the buttons would be. Replace and Revoke are offered only on a key that can still reach Tightly. The Developer group is on Tightly Essentials, Essentials+ and Pro and absent on Tightly Lite. Each resource keeps its own gate: `Accounts`, `Order book`, `Sell-out` and `Product data` are sold with Essentials+, and `Planning`, `Cash` and `Reports` with Pro, so a resource reads `Sold with Essentials+` or `Sold with Pro` until the plan includes it. The plan is checked on every keyed request, so a key stops reaching a resource the day the plan drops it. The same keys open the MCP door for an agent, reads only: a key never writes through it. ## When it is empty or failed A failed read prints "The keys did not load." with Try again. A plan that does not include the public API is refused with the server's own sentence, verbatim, in place of the table: > This organisation's plan does not include the public API. It is sold with Essentials+. A key with no label reads "A label is required." under the field. A write the server refused without a sentence reads "The key was not created; nothing changed.", "The key was not replaced; nothing changed.", "The key was not revoked; nothing changed." or "The sandbox was not created; nothing changed." --- # Approvals Source: https://docs.tightly.io/help/settings/approvals Reviewed: 2026-09-07 ## The question this page answers Who signs off a commitment before it owns money: must a second admin sign what another admin submitted, or may one admin declare and approve? Approvals is where the organisation chooses, and the record of every time it chose. ## What you see The head is the page's name, Approvals. The rule in force is not restated there: it is the option marked In force in the card beneath. The figure row carries Admins in this account and your own admins on this account; an account whose admins could not be counted reads Admins not counted in place of that figure. The card Approval policy offers the two rules as a choice, stricter first: A second admin and A single admin. Each name carries the first sentence of the served rule on hover: > A second admin must sign off a commitment before it goes live. > A single admin can declare a commitment and approve it. The rule in force wears the word In force. While nobody has chosen, no option is marked, and the rule the first approval would settle on wears What the first approval will settle on, with the served reason on its hover: > Nobody has chosen how commitments get signed off here yet. Until somebody does, the first commitment approved will settle it from the number of admins in this account, and that choice is then recorded and stays put. An account with one admin reads Recommended for a team of one beside A single admin. The one amber on this page sits beside A single admin when it is in force on an account with more than one admin, and reads how many admins can each sign alone. The card Purchase order finance approval says Pro purchase orders follow the same policy, and an admin chooses a Default finance approver there, pre-selected on every request, or No default. The card Changes is the record, newest first: When, To, From, By and How. How reads Chosen here for a rule a person chose and Settled at the first approval for one measured in. By names the person the change was recorded under. Absence is a word in the cell: No date, Nothing was set for a first choice with no rule before it, Not recorded. The settings rail carries Approvals on Tightly Pro only. On Tightly Essentials and Tightly Essentials+ a typed address opens the room's for-sale card: the name, the sentence "Sold with Tightly Pro.", Book time with Tightly, a door to Billing, and what the room holds, Approval policy and Changes. On Tightly Lite the address is Not found, because a store install is sold nothing. ## What to do Choose the other rule; the choice is the write, and the ring shows the rule Tightly holds, never the one pressed. Only an admin changes it; everyone else reads the two rules and the sentence "Only an admin can change this." Choosing the rule already in force changes nothing and adds no row. Every change lands in Changes with who and when, in the same write as the rule, so a change cannot happen without its record. The way back is the other choice, a new row. Loosening the rule hides nothing. Every commitment signed off says how on its own record: > A second admin signed this off. > The same admin declared and approved this, under this organization's single-approver policy. Nobody has chosen is never read as permissive. Until somebody chooses, the first commitment approved settles the rule from the number of admins on this account: one admin means a single admin, any other count means a second admin, and the measured choice is recorded as Settled at the first approval and stays put. Where the count cannot be taken, the answer is a second admin and nothing is stored. Only your own admins are counted; Tightly staff with access to your account are not, so a staff seat never changes your policy. What the rule does on [Sign off](../commitments/sign-off): under A second admin, a person who presses to sign their own submission is refused by Tightly, and the refusal lands beside the button; under A single admin they may sign their own. There is no reject under either rule. The Reject row on Sign off reads "None · signed or withdrawn", and its hover says who can end the wait: > A second admin signs it, or the submitter withdraws it. with "An admin signs it" in place of "A second admin signs it" under A single admin; a submission is withdrawn through [Retire](../commitments/retire). [Two signatures](../commitments/two-signatures) explains the rule itself. The same rule decides a scenario's sign-off. A scenario that changes the envelope, goes over it, or whose position cannot be stated goes for approval under A second admin; under A single admin it may be chosen, recording every reason. See [Promote a scenario](../commitments/act-promote-a-scenario). ## When it is empty or failed > This setting did not load stands in place of both cards, with Try again beside the head. While the read is on its way the two options draw as placeholders. A rule that has never moved reads, in place of the record: > This rule has not been changed A choice Tightly refused leaves the ring on the rule held; the page shows a rule only once Tightly has answered. --- # Asking for a new connection Source: https://docs.tightly.io/help/settings/asking-for-a-new-connection Reviewed: 2026-09-07 ## What it is A request is how you tell Tightly you want it to read from, or write to, a system it does not connect for you today. On Integrations every source Tightly connects by hand carries a **Request** button on its own page, for an admin or a member. Pressing it tells Tightly's team once, in a message to the team: which system, from which organisation, pressed by whom. Nothing is built by the press, nothing is stored against your organisation, and nothing is charged for it. A request that becomes work is a record Tightly's team files for it, one per system name, and that record is where a request's state is written. Your press does not open that record by itself; a member of Tightly's team does. It is a staff record: you do not read it, and this book does not describe its pages. ## How Tightly decides it Nothing about a request runs on its own. Work begins when somebody at Tightly presses Start the build on the record, and that press is a person's, because each build spends money. Five answers are what the record carries. An answer nobody gave is left blank rather than guessed at. - **What it is called.** The system's own product name, as you say it. - **Who needs it.** You, your company, and why. - **Which sets.** What should feed Tightly, in the same set words a live connection already prints. - **Which direction.** Whether the system should be your system of record or a second source beside one; and what should read back out of Tightly, from Purchase orders, Stock levels and Product data. - **A sandbox.** Whether the vendor runs one, whether the vendor's own free account would do, whether you would let a read of your own account be recorded, or none of the three. Neither is an answer too, and it does not refuse the request. Anything you already know about the system's own developer documentation is worth adding. A link from you decides what Tightly is allowed to read while it works the system out. ## The words on the face After a press the source's page reads `Requested` in State, with a Requested row carrying the day, and "{Name} is requested; Tightly will be in touch." (or "{Name} is requested." where a long name would not fit the line). The Request button is gone. That receipt lives on the page only: leave it or reload and the page reads `Not connected` again, and the Integrations list does not show it. The message has reached Tightly's team all the same. A press that did not go through says so where the button was, in the face's words where the server sent none: > The request for {Name} did not go through; try again. ## What you can do about it **Settings, Integrations** is the page. Open the source you want and press **Request** once. A system that is not on the list has no page, and so nothing to press; tell Tightly's team about it. Ask Tightly can tell you, in this article's words, what a request asks for and point you at the button. It cannot file one: filing is your own press, or a Tightly team member's tool. Ask Tightly will not give you a date for a connection or say one is being built: it cannot read the record, and only the record says where a request stands. ## Glossary line A request is the press on a source's Integrations page that tells Tightly's team you want a system it connects by hand; a record is kept only once the team files one, and no date comes with it. --- # Billing Source: https://docs.tightly.io/help/settings/billing Reviewed: 2026-09-07 ## The question this page answers How is this workspace paid for, where are its cards, invoices and receipts, and is a change or a cancellation scheduled? Billing carries no price list, no plan picker and no plan name: pricing is negotiated, and the plan is set with Tightly. ## What you see The head is the page's name, Billing, with Talk to us at its right. **Payment** is one row. It reads `Cards, invoices and receipts` with the door Open billing portal for a workspace on a live plan with a Stripe customer on file, `Not set up yet` for any other workspace billed by Tightly through Stripe, `Shopify billing` only when the recorded payment route is Shopify, or `Not billed` when the recorded route is none. If the route is unavailable, it reads `Not on file`. **Pending** stands only while something is scheduled; with nothing scheduled the set is not there. Billing change reads "Billing change scheduled for {date}" with Keep current billing, and "Confirm through checkout" beside it. Cancellation reads "Scheduled for {date}" with Undo cancellation, and "Undo any time before that date" beside it. ## What to do **Open billing portal** opens Stripe's own page for cards, invoices and receipts in a new tab. **Talk to us** opens Tightly's booking page in a new tab; it is the door for a plan change or a new plan. **Cancel subscription** stands at the head's right on a live plan with nothing already pending, for a workspace not billed by Tightly through Stripe; a workspace billed through Stripe has no cancel button here. It opens a drawer, Cancel subscription: Why, one of six reasons (I no longer need the product, It's too expensive, I had technical issues, I couldn't onboard properly, I'm switching to another tool, Other), Anything else (optional), and the consequence before the button: "Cancelling takes effect at the start of your next billing cycle on {date}; access to Tightly ends then." The decline is "Never mind, I'll stay"; the act is Cancel subscription, and it waits until a reason is chosen. **Undo cancellation** reverses a scheduled cancellation before its date. **Keep current billing** stands where a billing change is scheduled, and goes through checkout. Admins change this. Everyone else sees "Admins change this" once at the head and reads the rows; their buttons stay pressed off. A store installed from the Shopify App Store is Tightly Lite and is billed through Shopify or not at all; nothing is sold on it. A paying workspace connects Shopify through its own app and is billed by Tightly. Tightly holds that rule when a charge is attempted, and refuses the wrong route with one of two sentences: "This organisation is billed by Tightly, not through Shopify." and "This store came from the Shopify App Store; nothing is sold on it." ## When it is empty or failed A failed read prints "The subscription did not load." with Try again. A cancellation the server refused prints the server's sentence in the drawer, or "The plan was not cancelled; nothing changed." where it gave none. A checkout you left prints "The payment was cancelled; nothing changed." at the top of the page. --- # General Source: https://docs.tightly.io/help/settings/general Reviewed: 2026-09-07 ## The question this page answers What is this tenant called, what does it plan in and where, what kind of company is it, and what address does a purchase order print? General is the first page under Settings and the one `/settings` lands on. It describes the tenant you are working in right now; switching to another is the Profile page's job. ## What you see ::: shot page ::: The head is the page's name; like every Settings page it carries no sentence. Tenant fields are under General. Purchase order contact details are under Settings → Purchase orders, which is the same form showing its other set. **Tenant** holds Name, Domain, Logo, Time zone, Currency, Industry and Kind of company. Industry is one of five verticals in the customer's words (`Premium Apparel & Sporting Goods`, `Luxury Goods`, `Beauty & Cosmetics`, `Premium Home (Small Goods)`, `Outdoor Hardgoods`); nothing chosen offers all five. Kind of company is the chair: `Brand`, `Retailer` or `Both`. A tenant that was never asked reads `Brand`, because every tenant predates the question Setup now asks first; nothing infers it from the vertical or the connection. Changing the chair re-words the rail and adds or removes the rows that kind of company has; it sells no room and gates none a plan sells. The two chairs article says what each word becomes. **Settings → Purchase orders** holds Business address (street, floor or suite, city, state or region, postcode, country), with the line "Printed as your business address on purchase orders. Delivery addresses belong to each location.", then Phone and Email. These are the details every purchase order prints. The logo row reads `No logo` until one is uploaded, and `Removed when saved` after you press Remove and before you save. ## What to do A data-review currency finding opens this page at the Currency setting. Return to the data report and choose Refresh to check the saved value. 1. Edit a row and press save. 2. Choose **Kind of company** (`Brand`, `Retailer` or `Both`) to re-word the rail for what this tenant is. 3. Fill **Settings → Purchase orders**' Business address, Phone and Email for what a purchase order prints. A text row writes the trimmed value; an emptied row is recorded as nobody said, never as an empty string. The name is required and is kept to 100 characters; the invalid sentences are "The tenant needs a name." and "Keep the name under 100 characters." An email that is not an address reads "That is not an email address." A logo is a .svg, .png or .jpg of 5 MB or less; the wrong file reads "That file is not a .svg, .png or .jpg under 5 MB." and a failed upload "The logo did not upload. Try again." Members and admins may change these rows; the writes need the Member rung on the wire. The page draws the same controls for a read-only seat, and Tightly refuses a Viewer's save with: > Your access level does not cover this. Ask an admin on Team to raise it. Naming a tenant that started nameless happens here, for the current one only. To name a different one, switch to it first from the account menu or from the Tenants rows on Profile, then come back. Nothing on this page creates, leaves or removes a tenant: connecting another is Profile's door to Setup, and removing one does not exist for a customer. ## When it is empty or failed A failed read prints "The tenant profile did not load." in place of the form, with Try again beside the page's name. A write the server refused without a sentence prints "The change was not saved and no reason came back." beside the row. There is no empty state: a tenant always has a profile, even a nameless one. --- # The NetSuite role Tightly connects with Source: https://docs.tightly.io/help/settings/netsuite-role Reviewed: 2026-09-08T00:00:00Z ## What it is Purchase orders are written only when sending is enabled for your connection, NetSuite is your system of record and Tightly enables writes. Other syncs read only. Use View permissions; Setup requires Full. ## Why the list is what it is Routine sync needs SuiteAnalytics Workbook as well as REST Web Services. Tightly checks both when connecting. ## Create the role Open **Setup → Users/Roles → Manage Roles → New**. Name the role `Tightly Integration`. Non-UI roles work. Setup permissions, each at Full: | Permission | Why | |---|---| | REST Web Services | The route every call goes to | | SuiteAnalytics Workbook | Routine sync reads use SuiteQL, so this permission is required | | Log in using Access Tokens | Token-based authentication itself | | User Access Tokens | So the token can be created against this role | | Access Token Management | The token's lifecycle | | Integration Application | The record holding the consumer key and secret | Lists permissions, each at View: | Permission | Why | |---|---| | Items | Products and variants, their vendors, and the parts of kits and assemblies | | Locations | Your stock locations, and the first thing the connect test queries | | Vendors | Suppliers and their item links | | Subsidiaries | Read on locations, orders, refunds and supplier links, single-subsidiary accounts included | | Customers | Every sales order query joins it, and the connection checks read it | | Perform Search | Paging through the result sets | Transactions permissions, each at View: | Permission | Why | |---|---| | Sales Order | Sales history and demand | | Purchase Order | Open orders on the water, and how much of each line is received | | Work Order, Transfer Order | Builds, transfers | | Cash Refund | Refunds against cash sales, read as returns | | Credit Memo | Refunds against invoices, read as returns | | Item Receipt | Part of the recommended role; received quantities are read off the purchase order's own lines | Grant access to every subsidiary you want planned. NetSuite can omit inaccessible rows without reporting an error. ## Turn on one feature Setup, then Company, then Enable Features, then Items and Inventory, then Multiple Vendors. This enables the item-to-vendor links. It does not supply a verified vendor minimum order quantity; **Not mapped** remains visible until a supported source is configured or a value is entered in Tightly. ## Create the integration record and the token 1. Setup, then Integration, then Manage Integrations, then New. Name it `Tightly`. Tick Token-Based Authentication. Untick TBA Authorization Flow and both OAuth 2.0 boxes. Save. 2. NetSuite shows the consumer key and consumer secret once, on that screen only. Copy them now. 3. Assign the role to the user the integration runs as: Setup, then Users/Roles, then Manage Users, then that user, then Access. 4. Setup, then Users/Roles, then Access Tokens, then New. Pick the application, that user and that role. Save. 5. NetSuite shows the token ID and token secret once, on that screen only. Copy them now. ## The five values Tightly asks for The account ID (`1234567`, or `1234567_SB1` for a sandbox), the consumer key, the consumer secret, the token ID and the token secret. Connection refusals appear under the form. Without SuiteAnalytics Workbook: > NetSuite accepted these credentials but refused the SuiteQL query every Tightly sync depends on. Enable the 'SuiteAnalytics Workbook' permission on this token's role (it is separate from 'REST Web Services') and test again. If a refusal names permissions, check SuiteAnalytics Workbook first. ## Configure purchasing mappings Open **Settings → Integrations → NetSuite**. Use **Mapping** for columns, components and subsidiaries, or **Settings** for orders. - **Mapping → Subsidiaries:** select each purchasing subsidiary and its channels and warehouses, then **Save mappings**. Warehouse choices show verified NetSuite subsidiary ownership when available. The **NetSuite warehouses** table lists source warehouse and subsidiary IDs, including inactive warehouses returned by your role. - **Settings → Order settings:** select named NetSuite currencies, receiving warehouses and, if needed, a default subsidiary. Search warehouses by name. **Match from NetSuite** fills missing currency and warehouse mappings from verified source records. It preserves existing choices and stages changes for review; select **Save settings** to apply them. Unavailable saved mappings stay visible so they can be corrected. **Subsidiary sync:** save, then **Verify selection**. After verification, **Activate selection**. **Refresh status** retries a failed check. **Active** shows the scope in use. **Use all accessible** restores full role access. Failed actions retain your selection. **Latest source pull** shows observed counts and extraction filters. Source loading is separate from the run result. Linked history windows retain IDs; unfetched counts and coverage remain unknown. Absence never authorizes deletion. Saving mappings does not send purchase orders. For **New purchase-order emails**, switch on **Email newly created NetSuite purchase orders**, enter one recipient and **Save settings**. Only orders created afterward qualify, when NetSuite next syncs. Older imports and updates are excluded. Switching off stops pending notices. In **Mapping → Columns**, administrators select **Map field**, review and publish. Supplier lead time and replenishment frequency are separate day counts. Case pack has its own field mapping. SKU/warehouse lead-time defaults are read-only. Dimension and weight units are not case packs. **Not mapped** means no source. Carton dimensions and carton weight have independent unit mappings. Measurement basis identifies Product, Folded, Packed or Unknown dimensions. Product units do not establish carton units. Missing or unverified units cannot reinterpret saved measurements. Native warehouse packages need verified package identities, contents and current warehouse stock membership before they can establish measured space. Saving item mappings alone does not supply that evidence. Choose **Managed in → Tightly** for an editable field to keep its current value and stop NetSuite replacing it. Select **Save** to apply the choice. Switching back to **NetSuite** resumes that source on the next sync. A blank value remains missing. --- # Notifications Source: https://docs.tightly.io/help/settings/notifications Reviewed: 2026-09-07 ## The question this page answers Which events email me, and where do they go? Notifications is yours: it decides what reaches your own address. In-app notifications are on by default for every event but the daily digest, which has no in-app version, and the page draws no switch for them. Slack is the organisation's and is set on Integrations; Microsoft Teams is the organisation's too and is set on a card under the table. ## What you see The head is the page's name; like every Settings page it carries no sentence. One table of five rows: **Event** (`Inventory`, `Purchase orders`, `Budget`, `System`, `Daily digest`) and **Email**, a switch per row. A **Slack** column is drawn only when the organisation's Slack connection posts some events and not others, each cell a mark read as `Posting` or `Not posting`, read and never pressed; where every row would say the same the column leaves and the fact is said once, in the Slack row beside the table. **Where they go** holds three rows. Email is your own address from your account, or `No address on file`. Slack is the connection's state, `Not connected`, `Connected`, `Connected, posting all 5 events` or `Connected, posting nothing yet`, with the door Integrations; while it reads it says `Checking the Slack connection`, and a failed read `The Slack connection did not load`. Teams reads `Not connected`, or `Connected` with the host it posts to, and says `Checking the Teams connection` or `The Teams connection did not load` in the same way. Under the table the **Microsoft Teams** card holds the connection. Not connected, it asks for the **Webhook URL** from Teams, Workflows, Post to a channel when a webhook request is received, and **Connect** saves it. Connected, it shows **Posting to** the host, **Send test** and **Remove**, **Last test** (`Not tested yet`, `Arrived` or `Did not arrive` with the server's sentence), and a switch per event for what Teams is told about. A last real post that was refused is said in a row, `The last post did not arrive`. Only an admin can connect, test, remove or switch; everyone else reads the card, with `On` or `Off` for each event. ## What each event covers **Inventory** is stock: a stock-out, low stock, overstock, a bundle that cannot be built, and an event whose demand is not covered. **Purchase orders** is an order's life: a new supplier email, a delivery created, a status change, a delivery date, an overdue order and a supplier's signal about a date, a status or a quantity. **Budget** is money: a budget exceeded or near its limit, a fiscal year starting or approaching, open to buy over its envelope and an increase approved or declined, and on Tightly Pro a commitment breaching its verdict, waiting on a signature or carrying a proposed amendment. **System** is the platform: an import finished or failed, a sync finished, an integration issue, a sold-units limit, a skill step waiting on you, a mention in a comment, planned maintenance and the onboarding nudges. **Daily digest** is the digest itself. ## What to do Press a switch; the change writes on its own and reads back in the cell. There is no Save. The switch saves your own preferences, and saving them needs the Member rung: a Viewer who presses one is answered > Your access level does not cover this. Ask an admin on Team to raise it. To change which events post to Slack, or to connect Slack at all, open Integrations and the Slack connector page; that is the organisation's decision, not a person's, so it does not live here. ## When it is empty or failed The five rows are always drawn, so there is no empty state. A Slack read that failed says so in the Slack row, `The Slack connection did not load`, and the column stays away. A switch the server refused prints the server's sentence under the table, or "The change was not saved and no reason came back." where none came. --- # Planning Source: https://docs.tightly.io/help/settings/planning Reviewed: 2026-09-07 ## The question this page answers What defaults do the engines plan on for this workspace: how stock is synced, the service level, how often replenishment runs, the default lead time, the calendar every buy plan follows, the guardrails on the envelope, the tolerances the verdicts read, and the containers a fill plan counts in? ## What you see The head is the page's name; like every Settings page it carries no sentence. For anyone who is not an admin the head carries "Only an admin changes these." and every control stays closed. The sets, in order: **Stock and replenishment**: Stock sync (a Shopify source may sync stock; any other reads "Only a Shopify source syncs stock; deliveries are tracked in Tightly"), Target service level (a percentage, with the line "Stock protection target used to calculate safety stock; a higher target holds more buffer."; one option is marked `recommended`), Replenishment frequency, Default lead time (whole days, one or more) and Order-to-dispatch time (whole days, zero or more; "Days from receiving an account order to dispatch. Transit time is added separately."). **Calendar**: Fiscal year, one row for one window, the month it opens in a select and the month it closes beside it. On Tightly Pro it also holds Spring-summer length in months and Season windows, the two windows this shape pre-fills a new season with. On Pro, open to buy counts 4-5-4 retail weeks, and a fiscal year's first week starts on the Sunday on or before the first of the month it opens in. **Replenishment policies** is one row, not a card: how many policies run your restocking and how many are inactive, with the door Open to the Policies page. With only Tightly's own it reads `Tightly’s own policy only`. **Guardrails** (Pro): Mode (`Soft warning` or `Hard stop`), Tolerance, Ceiling (`No ceiling` when off), Warn within, Surplus. **Tolerances** (Pro): `Sign-off tolerance` and `Drift tolerance`, the two the weekly verdicts read. **Containers**, on every plan: one row per container type with Container, Internal cube, Payload, Pallet positions (`Not on file` where nobody gave one), Usable and Default, on the basis line `CBM · kg`; then Carrying cost rate and Hold back below. On Pro the carrying cost rate reads Finance's declared figure with the words `Declared on Finance` beside it, or `Not declared`, with the door Finance, because one economic fact is declared once; off Pro it is typed here. Off Pro the page carries the replenishment defaults, the fiscal year, the Policies row and the containers; the season rows, guardrails and tolerances are Pro's and are absent rather than shown empty. ## What to do Change a row and save it. A percentage row refuses what cannot be true: "That is not a number.", "Cannot be negative.", "Keep it at or under {max}%." A days row reads "Whole days, one or more." or "Whole days, zero or more." On Pro, when the calendar's shape moves, a table appears under it, Plan, Fiscal year, Spring-summer, Fall-winter, Effect, with one row per buy plan and the words `Same shape`, `Keeps its own shape` or `Shape not reported`; the table is absent at rest. **Add container type** opens the drawer New container type: Start from (a preset, or Custom), Name, Internal cube, Payload, Pallet positions (optional), Usable (a percentage between 1 and 100, 85 by default) and the switch Use as default container. Delete on a container carries its consequence first: "Deleting drops this container from every lane and supplier that names it, and each falls back a rung.", then Delete this container type. ## When it is empty or failed A failed read prints "The planning defaults did not load." in place of the page, with Try again; a set that did not load reads `Did not load` in its rows. No container types prints "No container types yet." A write the server refused without a sentence prints "The change was not saved and no reason came back." --- # Profile Source: https://docs.tightly.io/help/settings/profile Reviewed: 2026-09-07 ## The question this page answers Who am I here, how do I sign in, which tenants does my account hold, what is each one connected to, and how do I switch or add another? Profile is the first page under You, and the old Organisations page folded into it as the Tenants section. ## What you see ::: shot page ::: The head is the page's name; like every Settings page it carries no sentence. **Who you are** holds Photo (Upload, or Replace and Remove once there is one; `No photo` where there is none), Name, Title, Department, Phone (a dial code and a number), Email, Access (your rung: Admin, Member, Viewer, or Tightly staff for a Tightly seat) and Dates and numbers, the format your figures print in, with an example under each choice. **Sign-in** holds Current password, New password and Confirm, with the rule `Choose a password of at least 12 characters, up to 128, and not your email address.` beside New password and the act Change password; for a Google or Microsoft sign-in it holds one row, Password, with the sentence "Set with the provider you sign in through, not here." Under it stands Two-step sign-in; the Security article carries both in full. **Tenants** is one table: Tenant (the logo or initials, then the name; `Not named yet` for one nobody has named), Source (the system of record's name; the Shopify store domain under it where one is served; `Source not named` for a source without a label) and a last column reading `Current` on the row you are in and a Switch button on the others. Rows are in name order. A tenant syncs from one system of record, so Source is one word and never a list of connections. Under Sign-in, Your agents lists the AI agents that read Tightly as you; the Security article covers them. ## What to do 1. Edit a row of **Who you are** and save. 2. Press **Switch** on a tenant's row to move into it. 3. Press **Connect another tenant** to open Setup at "Where does your data live?". A phone number needs at least three digits when given: "A phone number needs at least 3 digits." A photo is a .png, .jpg or .svg: "That file is not a .png, .jpg or .svg." and "The photo did not upload. Try again." Remove reads `Removed when saved` until you save. Switch reloads the page in the new tenant, every other open tab of Tightly follows, and the choice is held in your browser rather than written to the server; the account menu's switcher does the same thing by the same mechanic. A read-only seat sees Connect another tenant closed with the reason in ink beside it, said before the form: "Your access is read-only; an admin can change it on Team." A Tightly staff seat is not shown the section at all. Naming a tenant is General's job, for the tenant you are in. Leaving or removing a tenant does not exist for a customer; only Tightly staff delete one. ## When it is empty or failed A failed read of your tenants prints "Your tenants did not load." with Try again in the section. An account with nothing on it reads "No tenant connected yet." with the door still offered. A row change the server refused without a sentence reads "The change was not saved and no reason came back." --- # Channels Source: https://docs.tightly.io/help/settings/sales-channels Reviewed: 2026-09-07 ## The question this page answers Which channels sell your stock, which side of the trade is each one on, which place ships for it, whose channel it is where an account owns it, and where do its figures come from? Channels is the settings page; the rail row says the same word. ## What you see The head is the page's name; like every Settings page it carries no sentence. Where every row's figures come from one source, the head's basis line names it once, `Figures from {source}`, and the Figures from column leaves; where every row last synced on the same day, that date stands in the head and the Synced column leaves. The table, `Sales channels`, has one row per channel. **Channel** is its name; a channel that has stopped selling carries the word `Inactive`. A channel whose side is `Wholesale` carries the word `Auto`, with the reason on hover: > Created by Tightly when bulk orders were detected from {name}, so wholesale sell-in stays apart. **Sells** is the side, `DTC` (we sell to the shopper), `Wholesale` or `Retail`, the same words in every chair; a channel nobody has typed reads `Not yet typed`. **Availability** says how the channel's stock figure is written, `Off`, `Shadow`, `Tightly writes it` or `Not on file`, and where one is set it opens that channel's panel. **Ships from** is the place or places that ship for the channel; where nothing ships yet the cell reads `No warehouse yet`, in the chair's word for a place. **Account** appears only in the brand and both chairs, with an EDI connection and at least one account on file: the account whose channel this is, or `Not yet linked`. With the connection and no account yet, one line above the rows says so: "No channel is linked yet." **Figures from** names the source per row, `SPS` for an account that arrives over EDI. **Synced** is the date its figures last landed, or `Not yet`. The side is read from the channel's type, never from its name, and an absent type is never read as direct. Where your orders carry a region, as a NetSuite order carries its subsidiary's country, Tightly splits each direct channel into one channel per region after every sync, named `{channel} ({REGION})`, so each region is forecast on its own; a direct channel left with no orders of its own then reads `Inactive`. ## What to do **Set permanently** types a channel once. The choice is `DTC` or `Wholesale`, each with its meaning under it; once set it is not re-typed here, because every plan reads it. **Ships from** picks the active places that ship for the channel; a place the connected system linked stays linked, and dropping it reads "{place} is linked to {channel} by {source} and stays linked." **Account** links one account to the channel, or clears the link with `Not yet linked`. Only accounts on no other channel are offered. The page lets only an admin change these and says so once, "Admins change these."; everyone else reads the rows. ## When it is empty or failed A failed read prints the page's sentence with Try again; no channels prints the second: > The sales channels did not load. > No sales channels yet. A write the server refused prints its sentence under the table, with the channel's name in front where the sentence does not carry it; a refusal with no sentence prints "The change was not saved." --- # Team Source: https://docs.tightly.io/help/settings/team Reviewed: 2026-09-07 ## The question this page answers Who can sign in to this workspace, what may each person do, which doors do they hold, and who is still waiting on an invitation? Team is the roster: people, invitations and the rungs they stand on. ## What you see ::: shot page ::: The head is the page's name and its one act, Invite; like every Settings page it carries no sentence. No figure row prints by default. For an admin, while two-step sign-in is required, a figure row appears above the table and counts the active people who have not set it up yet: "Two-step not set up". The table gathers its rows under two headings, People and Invitations, in five columns, and a sixth for an admin. **Person** is the name; a row that cannot sign in carries a badge beside it, `Deactivated`, and an invitation carries `Invited` and no name. **Email** is the address. **Role** is one of three customer rungs, Admin, Member or Viewer, with `Tightly staff` for a Tightly seat. **Doors** names what the person signs off: on Tightly Pro the doors are `Commitments`, `The Buy`, `Finance` and `Skills`; off Pro the one door is Skills. An admin passes every door and reads `Every door` on Pro and `Skills` off it; a person holding none reads `None`. **Since** is when they joined or were invited. An admin also sees **Two-step**: `On` or `Not set up` for each person, and a dash for an invitation, which has nothing to set up yet. Nobody else is shown the column. The three rungs, lowest first: a Viewer reads; a Member works the product and may invite people; an Admin also runs the team, its roles, doors and access. Tightly staff stand above every customer rung, and their row is not yours to edit. A search box, Find a person, narrows the rows; a search that matches nobody reads "Nobody matches “{query}”." ## What to do 1. Press **Invite**, add an **Email** and a **Role** per row (**Add another** for more), then press **Send invitations**. Members and admins may invite; a Viewer sees the button with "Members and admins invite people". 2. Open a person's menu and press **Open** to see their **Details**, **Signs off** doors, **What they can do** and **Access**. 3. Edit **Role**, **Title** or **Department** under **Details**, then press **Save**. 4. Turn a door on or off under **Signs off**; an admin's own read "Admins always can". 5. Press **Deactivate…** or **Reactivate** from a person's menu to stop or restore their sign-in. 6. Press **Remove…** to take someone off the tenant for good. 7. Turn on **Require two-step sign-in**, the switch beside the search, to hold everyone to a second step. 8. Press **Reset two-step sign-in…** on a teammate's menu when they lose their phone. An invitation's menu offers **Resend invitation** and **Revoke invitation…** in place of Deactivate and Remove. The consequence lines stand before each button. Deactivate: "{name} cannot sign in until an admin reactivates them; their doors still stand." Remove: "{name} loses access to this tenant now. Their recorded acts stay under their name." Revoke invitation: "{email} will lose their invite link, and getting them in would mean sending a new invitation." The decline is Keep. A row that is not an address reads "That is not an email address."; the same address twice reads "Listed twice."; an address already on the list reads "Email address already exists."; a drawer with nothing to send reads "Add at least one email". Each invitation row's own result is the server's sentence, printed beside it. **Require two-step sign-in**'s confirm says who it holds: "Everyone on this account who has not set up two-step sign-in is asked to set it up before they can carry on, from the next page they open." An admin with no second step of their own is asked to set up theirs first, and the confirm waits until the admin's own is read; where it could not be read, the drawer says so, with Try again. Reset two-step sign-in appears only on rows below your own role, never a fellow Admin's, staff's or yours: change your own from Profile, with your password. Roles, doors and access are an admin's to change; the page says so once, "Admins change roles, doors and access", and a member sees the controls disabled. Nobody changes their own: "You cannot change your own role" and "You cannot change your own details, doors or access" stand where the controls would be. On the wire the role, the door grants and the removal need an Admin, and changing another person's details or access needs one too; inviting and revoking an invitation need a Member. A seat below the rung a write needs is answered: > Your access level does not cover this. Ask an admin on Team to raise it. ## When it is empty or failed A failed read prints "The team list did not load." in place of the table, and Try again takes the Invite button's place. An empty list prints "Nobody on the team yet." in place of the table; the Invite door stays. A refused write prints the server's sentence in the drawer, or in a banner above the table when the drawer is closed, with Dismiss. --- # Locations Source: https://docs.tightly.io/help/settings/warehouses Reviewed: 2026-09-07 ## The question this page answers Where does stock sit, what kind of place is each one, which is the default, which are active, how does each one restock, and how long does a transfer take between any two of them? The page is Locations on the brand chair and Stores & DCs on the retailer chair; the rail row and the head take the same name, so the door and the page cannot disagree. Where stock sits is the one object this page is about, and each chair has its own word for it: a Warehouse in the brand chair, a Store in the retailer chair, a Location where a brand also owns stores. Every sentence below bends that word. ## What you see The head is the page's name; like every Settings page it carries no sentence. Where more than one place is active its basis line reads `Lead times · days`. The first set is the places, one row each, with a search: **Name**, **Location type** (`Store`, `Warehouse`, `Distribution centre`, `Third-party logistics`, `Drop ship`, or `Not set`), **Address** (street and city; the whole address on hover; `No address` where none is on file), **Default** (the word `Default` on one row), **Active** (a switch; the last active place reads `The last active stays active`), **Replenishes by** (`Transfer`, meaning transfer orders from other places, or the supplier word, meaning purchase orders from suppliers; an inactive place shows its method as a word) and **Ships to channels** (the channels this place ships for; `No channel yet`). The second set, drawn where more than one place is active, is **Transfer lead times**, a matrix of the active places, From down the side and To across the top. A cell is a whole number of days or `Not set`. The third, **Source priority**, picks a destination and lists the places that transfer into it, with the note `Lowest priority first · blank keeps source order`; with no inbound lanes it reads "Add inbound transfer lanes first." The default is the first active place in the list. Names come from the connected system. ## What to do Press a row to open its drawer. **Make default**, offered there on an active place that is not already the default, moves the chosen place to the top of the list. **Location type** takes one of the kinds, with Save type. The **Active** switch turns a place off or on; the last active one cannot be switched off. Turning one off asks first, "Disable {name}?", with its consequence: "Stock and incoming orders here will be excluded from active-location planning and replenishment. Existing records stay available. NetSuite sync will not reactivate this location." The decline is Cancel, the act Disable location. **Replenishes by** takes one of the two methods. The drawer also holds the address: Street, Floor, suite or unit, City, State or region, Postcode and Country, and one button, Save address. It says "The name is managed in {integration} and cannot be changed here." The address is editable on a Shopify source, where the drawer says "Once saved, Tightly keeps this address and sync will not overwrite it."; on any other source it reads "This address comes from {integration}; change it there and Tightly syncs the update." An inactive place reads "Reactivate this {place} to edit its address." Capacity uses either Units or Space. Space can be shown in cubic metres or cubic feet. Product measurements and packaging measurements are separate. Packages shows recorded products and their actual cartons or pallets. Each product shows its box IDs, required box roles, recorded measurements and acceptance state. A partly arrived product shows its missing boxes and contributes no accepted whole product. Use Box hierarchy to inspect enclosing packages. Missing or incomplete measurement evidence leaves available space unknown. A store’s local storage is managed through its linked warehouse, not through assortment settings. **Import packaging** accepts identified boxes and whole-product membership. The Whole-product template includes product, specification revision and role fields. Preview before recording. For complete products already in stock, select **Already on hand**, confirm the full warehouse position and **Review selected stock**. This records packaging evidence without creating stock. Unselected products remain arrived boxes awaiting acceptance. In a [stocktake](../product/stock-on-hand), **Correct whole products** records absent accepted products or newly found complete products with actual box IDs. Confirm each required box and any enclosing pallet left behind. Source-managed counts cannot apply local corrections. A changed warehouse revision preserves the draft and blocks applying it. In the lanes matrix, type days into a row's cells and press that row's Save. A cell you empty removes the lane, and the consequence line says so first: "Clearing {to} removes the {from} to {to} lane; that cannot be undone." Removing a lane that carries a source priority asks once more, "Remove ranked transfer lanes?". Days are whole numbers, zero or more; anything else reads "{name}: Days are whole numbers, 0 or more." Admins change these; the page says so once, "Admins change these.", and everyone else reads the rows. ## When it is empty or failed A failed read prints "The {places} did not load." with Try again; a failed lanes read prints "The transfer lead times did not load." No places prints "No {places} yet." A write the server refused prints its sentence under the table, prefixed with the row's name where the sentence does not already carry it; a refusal with no sentence prints "The change was not saved." --- # Webhooks Source: https://docs.tightly.io/help/settings/webhooks Reviewed: 2026-09-07 ## The question this page answers Which outside systems are told when a purchase order is created or changes, is the last post arriving, and how do I add, re-sign or stop one? The Webhooks page is built but not yet open on Tightly: it has no address a customer can reach, so the Developer group of the settings rail shows API keys and Metrics without it, Integrations draws no Webhooks row, and an old Webhooks link lands on the Integrations list. This article says what the page shows and does once it opens. How to verify a signed post and what a delivery carries is the developer portal's Webhooks guide. ## What you see Where there are webhooks the head says nothing, because the rows are the count; with none the card reads "No webhook fires yet." One table, newest first: **Address**, the URL in ink, cut in the middle where it is too long for the column so two addresses on one host still differ, with the whole address on hover; **Event**, `New purchase order` or `Purchase order updated`, the two the page adds, and a webhook subscribed to another event through the API shows that event's own name; **Delivered**, `Not sent yet` for a signed webhook or `No secret yet` for one added before signing existed; **Since**, the day it was added, or `Not dated`. The Delivered column stands only once a row differs from the rest: while every row reads the same absence the column leaves the table rather than repeating one word down it. The row menu offers Deliveries, and to members New secret and Remove. **Deliveries** opens a drawer with one row per post: When, Event (dropped where every post is the same event), Status (`Delivered` or `Failed`, or the server's own word for a post still being retried) and Attempts, a count of tries for one post. The last try's answer rides the status word on hover: "Last attempt answered {status}." or "Last attempt reached no server." ## What to do **Add a webhook** opens a drawer with Address and Event, and the consequence before the one button: "Tightly posts each {event} to this address as it happens." The receipt is the signing secret, shown once, with Copy and "Copy it now; Tightly cannot show this secret again." The new row appears first. **New secret** rotates the secret and shows the new one once; the consequence is "A new secret signs every post from now; anything checking the old one stops accepting them." **Remove** carries "{System} stops firing on purchase orders." before the button, where the system is the host the address names, or the whole address where two rows share a host; the decline is Keep it. Members change these, because a webhook is not a key and does not outlive a person; a viewer reads the table, and "Members change this" stands once where the buttons would be. The page and its routes are on Tightly Essentials, Essentials+ and Pro; a Lite tenant is refused, unless it held a live webhook before the plan gate existed. Every post is signed with the webhook's secret in an `X-Tightly-Signature` header. A post that fails is retried three times, after one minute, ten minutes and an hour, so four attempts in all, and every attempt is recorded. ## When it is empty or failed A failed read prints "The webhooks did not load." with Try again; a failed deliveries read "The deliveries did not load." No posts yet prints "Nothing sent to this address." in the drawer. Removing or re-signing a webhook that no longer exists prints the server's own sentence: > Webhook not found A write the server refused without a sentence reads "The webhook was not added; nothing changed.", "The webhook was not removed; nothing changed." or "The secret was not changed; nothing changed." --- # What comes in and goes out on a connection Source: https://docs.tightly.io/help/settings/what-comes-in-and-goes-out-on-a-connection Reviewed: 2026-09-07 ## What it is A connection has two halves, and the connection's own page shows both. One half is what the source feeds Tightly: sets of records, a row each, drawn from Products, Inventory, Sale orders, Suppliers, Purchase orders, Lead times, Accounts, Locations, Channels, Sell-out, Shipments and Orders. The other half is what the source reads back out of Tightly: writes, a row each, drawn from Purchase orders, Stock levels, Product data, Bills, Credits, Invoices, Fulfilment requests, Acknowledgements, Shipping notices, Availability, Notifications and Purchase-order events. Beneath the two halves sit the fields the source actually sent, and the history of everything that has happened on the connection: syncs, imports, mapping changes, scope changes, dictionary changes, drift, fields added and removed. Which sets and which writes appear at all is the source's answer, not a preference. A set the source cannot send has no row. The one exception is a set somebody switched on that the source has since stopped sending: it keeps its row, reads `Not offered`, and carries the reason on hover. ## How Tightly decides it The figures under the page's name count off the table beneath them: Reads, how many sets Tightly reads, which appears once a set is turned off; and Fields, how many of the fields Tightly knows for those sets are mapped. Nothing on the page works a time out for itself. A write Tightly recorded prints the day it happened; a write nobody recorded reads `Not dated` rather than taking the day some other record changed, and a record with nothing in it yet reads `Nothing written yet`. Counts read the same way: a number nothing counted reads `Not counted`, never a zero. Fields come from what arrived in the runs Tightly kept, not from a list of what a source could send in theory, which is why the fields card appears only once Tightly has kept one run. ## The words on the face **Feeds Tightly** names the half that comes in and **Reads from Tightly** names the half that goes out. On the list of connections, Reads from Tightly is also a filter and a kind. A set's **Reads** cell says `On`, `Off`, `Off · recorded` where the choice is kept but the sync does not filter yet, or `Not offered`. Its **State** says `Not started`, `Syncing`, `Synced` or `Failed`, with the reason on hover. A field's **Use** cell says one of four things: `Mapped to Fabric` where something reads it, `Could feed Supplier lead time` where Tightly recognises it, `Left as you asked` where somebody turned it down, and `Not used`. ## What you can do about it **Stop reading** a set, from its row. Where the source's sync asks per set, Tightly skips it from the next sync, deletes nothing it has already read, and the cell reads `Off`. Where that sync does not filter sets yet, Tightly records the choice, says so before you press, and the cell reads `Off · recorded`. **Read again** puts it back. A read-only seat sees the rows and not the switch. **Match the fields** opens the mapping wizard at that set. **Add a field to Tightly**, on a field the source sends that nothing reads yet. Name it, choose its type, and choose whether it belongs to the product or to one variant. The drawer says what becomes true before you press: the field lands on every product or variant, the source fills it from the next sync, and nothing plans by it. Press **Add the field**. An admin's press puts it live; a member's waits in Review. A field a source fills is that source's. Editing its value on a product answers where you pressed: > Fabric is read from Shopify; change it there, or stop reading it on the Shopify page. Stop reading it, which is an admin's act, and the values stay and become yours to edit. ## Glossary line A connection's two halves are what a source feeds Tightly and what it reads from Tightly, each a table of rows on that connection's own page. --- # Draft and send an email Source: https://docs.tightly.io/help/mail/act-send-an-email Reviewed: 2026-09-07 ## What it writes Two acts, and only the second writes anything that leaves. Drafting composes a note from a record's own read to a person the record holds: a purchase order to its supplier, or one season of an account's order book to its buyer, or a commitment. The recipient comes from the record's contacts, never a typed address; the words are the house template filled with figures the reads served, each kept with the read it came from; the attachment is what the record offers. Drafting sends nothing and can be asked as often as you like. Sending takes the draft out through your own connected mailbox, so the mail leaves under your name and never under a shared identity. It spends nothing and moves none of a Commitment's five declared numbers. A note about a purchase order is filed against that order's thread, so the reply lands on it, and the note carries the act it came from. ## Who may press it A person on Tightly Pro whose organisation holds the email agent, with a connected mailbox, on a seat that may write. Composing is open to a read-only seat, which can write itself a note and never send one. The chip Ask offers is a door: it opens the email drawer over the page you are on, and the drawer's own Send is the act, so the page performs. Ask never sends from a chat and never adds this act to its own allowlist, and a key never sends. The email agent proposes and drafts and never sends either. Ask offers the draft only where a mailbox is connected and the seat may send; otherwise the suggestion is not drawn. There are caps: fifty sends a day per person through Ask, three to one recipient in seven days without a reply from them, and a do-not-email list per organisation. A send the caps refuse keeps the draft. ## What you see The drawer is titled Note to {name}, with To, Subject, Note and Attached. To offers only the record's own people. In the note the served figures are dotted-underlined, with `Yours · Ask` on hover, so what a read produced is told from what you typed. Subject and the note are editable while the note is a draft, the note through Edit and Done. Send holds the note for thirty seconds before it leaves, and the server's receipt says so: > Sent from {mailbox}; take it back for {seconds} seconds. While it is held the button becomes Take it back, beside `Leaves in {n} seconds`. Once the note has gone the record reads > Sent from {mailbox}; nothing comes back. with the mailbox and the message id. Nothing pops up and nothing navigates away. Without a connected mailbox the drawer offers the door Connect a mailbox, which is Settings › Email. ## What to do The way back is Take it back inside the thirty seconds: the note returns to a draft, reads Taken back; nothing was sent., and can be edited or closed. After release there is none, and the record says so. A reply to a note about a purchase order lands on that order's thread. ## Refusals you may read No mailbox connected, served by the send route: > Email integration is not set up for this user and organization The drawer's own sentences where the wire refused without words: "This note could not be opened just now.", "That change was not kept and no reason came back.", "This note was not sent and no reason came back.", "This note was not taken back and no reason came back." A server refusal with a sentence prints where the button was, character for character: a day's limit reached, a recipient written to three times without a reply, or an address on the do-not-email list each say so, and each keeps the draft. --- # Back from Amazon Source: https://docs.tightly.io/help/access/amazon-return Reviewed: 2026-09-07 ## The question this page answers Did Amazon accept my authorisation; is my Seller Central account connected to Tightly now, or do I have to go back and try again? This address is the one Amazon sends you back to after you approve the connection. It reads what Amazon sent, once, connects the account straight away, because Amazon's code expires within minutes, and then sends you to Settings under Integrations. It opens inside Settings, under the title Amazon Seller Central. ## What you see ::: shot page ::: While it connects, one line under a loader: > Connecting your Amazon account… When the connection is made, a notice says so and you land on the Integrations page: > Amazon Seller Central is connected. The first sync can take a couple of hours. When it is not, the page shows a muted **Amazon unavailable** tag with a retry icon beside it; hovering the tag reads the server's own reason: where the authorisation Tightly started has expired, > Your session expired. Reconnect to Amazon. where Amazon sent you back without the three things a connection needs, > Authorization was cancelled or incomplete. and otherwise > The Amazon Seller Central connection did not complete. ## What to do 1. Wait; nothing to press while it connects. 2. Where it did not connect, press the retry icon beside the **Amazon unavailable** tag to start the authorisation afresh and leave for Amazon's consent screen. 3. Or, from the Amazon row's drawer on the Integrations page, press **Continue to Amazon** under the lines saying Tightly reads listings, orders and FBA stock and never reads customer personal data (an unpublished application warning there is expected). A Continue to Amazon that could not start says, in the drawer: > The Amazon Seller Central connection did not complete; try again. The address and what Amazon sent are cleared as the page reads them, so a refresh never sends the same code twice. Tightly connects one Amazon account per organisation; a second authorisation reconnects the same one, and a paused or failed connection is set back to connected by it. ## When it is empty or failed A guest who lands here is sent to Sign in with this address remembered, and returns to it after signing in. An organisation still being set up is sent to its setup step: with what Amazon sent, so the connection lands in the wizard, or, where Amazon sent back too little, with the cancelled message. An authorisation started while creating a new organisation is finished on the setup page that started it, not here. --- # Something went wrong Source: https://docs.tightly.io/help/access/error Reviewed: 2026-09-07 ## The question this page answers Tightly just broke on me: what happened, is my work safe, and how do I get back to it? This is the crash page. It renders one thing, a page that stopped drawing itself, caught by the app's own boundary. It is not the page for a failed read, a refused write or a missing record; each of those has its own sentence in place. ## What you see ::: shot page ::: The title is > Stopped working and the verdict states two facts, that the page failed and that your data did not: > This page stopped working, and your data is unchanged. Under it, one button, Reload Tightly, and beside it the support address, support@tightly.io, for a reload that lands on the same crash. Off production, on Tightly's own internal builds, one more line in code type names the cause, the error's name and message, so a Tightly person reading over your shoulder sees what broke; on production that line is absent. Nothing is red. No code number prints anywhere. The page draws in the sign-in shell rather than the product frame, because a frame that broke cannot host its own crash page. While a Tightly person is working in your account on your behalf, their banner stands above the page with Return to admin, so a session that broke while they were inside still hands them back their own identity. ## What to do 1. Press **Reload Tightly**. 2. Where the reload brings the same crash back, write to support@tightly.io. Reload clears the recorded error and reloads the whole app; the app then opens Home, or Sign in where the session has gone. It is the page's one button, and it is a full reload on purpose: the part of the page that broke keeps its broken state until the app starts again, so a soft return would land you back in it. ## When it is empty or failed This page has no loading, empty or failed state of its own: with no error recorded it never renders, and the address opens Home. Two other failure faces are not this page. A part of the app that did not arrive, after Tightly was updated while your tab was open, reads that the page could not be loaded and offers Try again. A purchase order, a supplier or a stocktake that no longer exists opens Not found, as does an address that names nothing. --- # Forgot password Source: https://docs.tightly.io/help/access/forgot-password Reviewed: 2026-09-07 ## The question this page answers I have forgotten my password; email me a link so I can set a new one and get back in. ## What you see ::: shot page ::: The title is > Forgot password with one sentence under it, "The link we email works for 24 hours.", and no basis line or as-of. One field, Email, and one button, Send link, disabled until the address reads as an address. Under it, Back to sign in. Once the link is sent the sentence reads > If {email} has an account, a 24 hour link is coming. with the address you typed echoed back, so a typo is visible. The sentence is conditional on purpose: Tightly answers the same way whether or not the address has an account, so the page never says which, and a stranger typing addresses at this form learns nothing about who holds one. Two controls follow: Send again, and Use a different address, which returns to the form with the value kept. ## What to do 1. Type the email you sign in with in **Email**. 2. Press **Send link**; Enter does the same. 3. Open the link in the email, which opens [Set a new password](../access/reset-password). 4. Press **Send again** for a second live link, or **Use a different address** to start over. 5. Press **Back to sign in** to return to Sign in without keeping the address. A second Send again mints a second live link; the first stays valid until it is used or a day old. Tightly sends at most three links to one address in fifteen minutes, and at most ten from one network address; an ask past either answers the same sentence and sends nothing. Nothing here signs you in, changes a password or reveals whether an address exists. ## When it is empty or failed Before a send, a malformed or empty address reads its own word under the field. A refused send keeps the form and its value and prints the server's sentence under the button where one was served; where nothing was, the page's one client sentence stands: > The email could not be sent; try again. with the support address, support@tightly.io, beside it; a sentence the server served stands alone. An account that signs in through Google or Microsoft is sent no link, and the page answers the same sentence: its password is set with the provider, and Settings under Profile says so for such an account. --- # Authorise an MCP client Source: https://docs.tightly.io/help/access/mcp-authorise Reviewed: 2026-09-07 ## The question this page answers Do I let this AI agent into my Tightly account, as whom, into which organisation, reaching how far, for how long? An AI agent, Claude in a desktop or a connected client, arrives here when it asks to connect to Tightly. This page is where you grant it, and nothing is granted until you press. ## What you see The title is > Connect an AI agent signed in or out. Signed out, the sentence is > Sign in to let an AI agent read your Tightly account. with the agent's own name in place of "an AI agent" where it gave one, over the sign-in form, two steps as on Sign in, with no provider doors and no Forgot password door, because either would leave the request behind and let it lapse. Signed in, the sentence names who wants what: > {agent} wants to read Tightly as {email}. or, with Read and act chosen, {agent} wants to read and act as {email}; an agent that gave no name reads An AI agent. Below it the facts and the choices: Organisation, a pick of the organisations your account holds; Reach, Read or Read and act, shown only where the agent asked to act and your organisation allows it (where the organisation withholds acting, its own sentence stands in the control's place); Read and act carries its consequence before the button, > It asks you before every act, and never signs off, releases or closes a commitment. Access reads "24 hours at a time, renewed for up to 30 days". What it can read is one list of four: products, variants and stock levels; purchase orders and suppliers; sales and the dashboard; replenishment recommendations. A record line reads > Every call is kept for 90 days, never what it read, and Tightly trains no model on your data. Then Cancel, with its consequence, > Nothing is granted; it lapses in 10 minutes. and Authorize. ## What to do 1. Check **Organisation** names the one you mean to grant into. 2. Choose **Reach**, Read or Read and act, where the control is offered. 3. Press **Authorize**; the page leaves for the agent, which now holds a grant under your seat and your organisation. 4. Or press **Cancel** to close the tab or open Home and tell the agent nothing; the request lapses on its own. A read-only seat's agent reads; an agent with Read and act may propose the acts your seat may take, and asks before every one. Authorization is asked for once per request; the agent asks again when its grant runs out. The agents you have let in, and the door that ends one, stand on Profile. ## When it is empty or failed ::: shot page ::: > Not a valid request from an AI agent; start again there. > The request was incomplete; go back to the agent and start again. A request the agent side refused prints its served sentence, then Go back to the agent and start again: > Invalid or expired authorization request. An account that holds no organisation cannot authorise, and Authorize's reason stands beside it: "Tightly Connect seats cannot connect an AI agent yet.", or, where the account could not be read, "An agent reads one organisation, and this account holds none." An organisation that keeps an approved list of agents names its refusal there too, and a policy Tightly could not read reads "Tightly could not confirm your organisation's agent policy. Try again in a moment." A sign-in the page could not complete reads "Tightly could not sign you in; try again." A session that lapses on the page returns it to the sign-in state. --- # Not found Source: https://docs.tightly.io/help/access/not-found Reviewed: 2026-09-07 ## The question this page answers There is no page at this address: where was I going, and where do I go now? Not found is the page every address that names nothing lands on, whatever the reason: a mistyped address, an old bookmark, a page your seat does not include, or a record that once existed and does not any more. It renders inside the product frame, with your rail beside it, because only a signed-in member of an organisation ever sees it: a guest is sent to Sign in, a Tightly staff seat to its own portal, and an organisation still in Setup to its step. ## What you see ::: shot page ::: The frame's title is > Not found and the page is one card with one sentence: > This link is out of date, or never existed. Where you typed or followed an address, it stays in the address bar, so a link you were sent can be read and corrected there, and a refresh lands on the same page rather than on Home. No reason is given on the face, on purpose: a mistyped address, a page your seat may not open and a page reserved for Tightly's own on-call team share this one sentence, so the page never confirms what exists and what does not. One door, Home, beside the sentence: the only address certain to exist for whoever arrived. ## What to do 1. Check the address in the bar for a typo. 2. Press **Home** and walk to the page from the rail instead. 3. Where a link came from a colleague who can open it and you cannot, ask them for the page's name; your seat may not include it. ## When it is empty or failed This page has one state. Two neighbours are not it. One arrival is this page by another road: a purchase order or a supplier deleted after the link was made opens this page in place of the record, rather than [a failed read](../platform/a-failed-read)'s own sentence, since there is no longer a record to fail against. A Tightly build updated while your tab was open and a part of the app that did not arrive read that the page could not be loaded, with Try again. A session that expires while you are on this page sends you to Sign in without remembering this address, since an address that named nothing is not worth returning to. --- # Privacy policy Source: https://docs.tightly.io/help/access/privacy-policy Reviewed: 2026-09-07 ## The question this page answers What personal data does Tightly collect about me, what does it do with it, who else sees it, and what can I do about it? The privacy policy is one legal document, given by its author, rendered whole. Nothing on the page is a read, a write or a control; the document is the content. ## What you see ::: shot page ::: The title is > Tightly privacy policy followed by the document's own first paragraph. There is no as-of, because the document carries no effective date and Tightly does not invent one. The document runs in its own order: how Tightly collects personal data, what it collects, why and on what legal basis, who it shares with, how long it keeps it, the rights you have, including those under the EEA and UK rules and California's, and how to reach Tightly about them. The headings are in ink and weight, never uppercase; the numbered and bulleted lists stay as the document has them. To the left of the column on a wide screen, and after the document on a narrow one, a contents rail lists every heading as a door, with the heading you are reading in ink. The ink moves as you scroll, marking the last heading you have passed; at the foot of the document, where no heading can cross the line any more, it marks the last one still on screen. The rights address, the support mailbox, is a door that opens your mail. ## What to do 1. Read the document. 2. Press a heading in the contents rail to jump to it. 3. Write to the support mailbox to exercise a right the document names: access, correction, deletion, or an objection to a use. 4. Press **Back** to return to the page you came from, where there is one, or **Home** when signed in and **Sign in** when not. The page is reachable signed in or out, and from the foot of Sign in and Sign up. ## When it is empty or failed The page has one state and no read to fail. A part of the app that did not arrive reads that the page could not be loaded, with Try again. The document's own gaps are legal's to close and are not reworded here: clauses from an earlier product, names of documents that do not exist on this site, a missing effective date and a second policy on the marketing site. Until legal rules, this page shows the document as it stands. --- # Reset password Source: https://docs.tightly.io/help/access/reset-password Reviewed: 2026-09-07 ## The question this page answers I followed the link in the email; can I set a new password now and get back in? This page is reached from the recovery email only. The signed-in change of password lives in Settings under Profile, in its Sign-in set, and is not this page. ## What you see ::: shot page ::: The title is > Set a new password and, when the link is whole, one sentence about the write's real consequence: > Saving a new password signs you out everywhere else. Two fields, New password and Confirm new password, with the rule as the first field's own placeholder and Type it again as the second's; one Show or Hide reveals both, so a mismatch is visible without a second press. Save new password is disabled until both pass and match; a failing rule prints its sentence under its own field. One mismatch sentence, the same one Settings uses, appears under the second field when they differ. On success the form leaves and the sentence reads > Your password is set, and every other session of yours has been signed out. with one door, Sign in. ## What to do 1. Type the new password in **New password**. 2. Type it again in **Confirm new password**; press **Show** or **Hide** to check both at once. 3. Press **Save new password**; Enter does the same. 4. Press **Sign in** on the confirmation and sign in with the new password. Saving also lifts a lock from too many wrong passwords. The link is single use and lasts a day, and several links can be live at once; a used one reads as expired. ## When it is empty or failed A link missing either of its two parts is decided on arrival, not at the press: > This link is incomplete; request a new one. with the doors Request a new link and Back to sign in and no form. A refusal replaces the form with the server's own sentence: > That password reset link has expired. Ask for a new one; each link lasts a day. > The provided token is not a valid token. each with the same two doors. Any other refusal replaces the form with the server's sentence, such as > This account signs in with Google or Microsoft; set its password with that provider. for an account whose password lives with its provider, and a failure that served no sentence reads > The password was not changed; request a new link and try again. Either carries Request a new link, Back to sign in and the support address, support@tightly.io. Request a new link opens Forgot password. --- # Sign in Source: https://docs.tightly.io/help/access/sign-in Reviewed: 2026-09-07 ## The question this page answers Let me into Tightly, with my email and password or with the Google or Microsoft account I already use, and put me back where I was going. ## What you see ::: shot page ::: The title is > Sign in to Tightly with no basis line and no as-of, because nothing here is measured. A sentence sits under the title only when there is a fact to state, one at a time: > Signing you in with {provider}… while a provider is answering, with the form and both doors disabled; > Your session expired; sign in again to continue to {destination}. or, with nowhere remembered, Your session expired; sign in again; and > Sign in to continue to {destination}. where the address you were opening is remembered. The destination is the page's own name, Purchase orders for instance, never a path. At rest the title stands alone. The form is two steps. First the email, with Continue and, under the word or, the two doors Continue with Google and Continue with Microsoft. Then the password, with your address echoed in ink and Change beside it, Show or Hide as words, Sign in disabled until both fields pass, and the door Forgot password?. A Privacy policy door sits at the foot. There is no sign-up door: an account is made from an invitation or a store install, never from this page. ## What to do 1. Type your email and press **Continue**. 2. Type your password and press **Sign in**; Enter does the same on either field. 3. Press **Change** to go back to the email step with what you typed kept. 4. Or, instead of a password, press **Continue with Google** or **Continue with Microsoft** and finish on that provider's own screen. 5. Press **Forgot password?** if you cannot remember your password. 6. Press **Privacy policy** to read it before signing in. After a successful sign-in the frame decides where you land: a staff seat on its own portal, a new organisation in Setup at its saved step, a buyer seat in the buyer portal, everyone else at the page you were going to, or Home. ## When it is empty or failed A refusal is a line under the control it names, in ink, in the server's own words: > The provided login credentials are invalid. for an unknown email and a wrong password alike; the server never says which. Ten wrong passwords in a row lock the account for fifteen minutes, and the refusal then says how long is left: > Too many failed sign-ins. Try again in {minutes} minutes. An account an admin switched off reads > This account has been deactivated; ask an admin at your organisation to turn it back on. and an address never confirmed reads > Your email address is not confirmed yet. which returns you to the email step and offers Send the activation email again; a sent email reads back as the address it went to. A provider's refusal prints under the two doors: > Tightly signs in Google Workspace accounts. Use your work address. Where nothing was served, the page's one client sentence stands: > Tightly could not sign you in; try again. A resend that failed reads that the activation email could not be sent, and offers the door again. Editing the field a refusal names clears it. --- # Sign up Source: https://docs.tightly.io/help/access/sign-up Reviewed: 2026-09-07 ## The question this page answers I was sent here to join Tightly: which address is this account for, what do I need to give, and what happens if the link is old? Sign-up is invite-led. An account is created from a teammate's invitation, from Tightly's own invitation, or from a Shopify store install; a bare visit with none of the three gets no form, only the sentence "Sign in, or ask your Tightly contact for an invitation." and the door Sign in. ## What you see ::: shot page ::: The title is > Create your account and its one sentence names the arrival: > {Inviter} invited you to their Tightly organisation as {email}. for a teammate's invitation, or You're invited to a Tightly organisation as {email} without a name; > {Name}, create your Tightly account as {email}. for Tightly's own invitation, or Create your Tightly account as {email} without a name; and > Create your Tightly account to connect {shop}. for a store install, with the store's address as Shopify sent it. An invited address stands as a locked value under Email; a store install types its own. The password field's rule is its own word before typing, At least 8 characters, no spaces, and the failing rule replaces it when a typed password breaks it. Sign up is disabled until the form is whole; the two provider doors read Continue with Google and Continue with Microsoft. Under them stands Sign in, and Privacy policy sits at the foot. A link that carries no invitation at all creates nothing and says so, with Sign in as the one door: > Sign in, or ask your Tightly contact for an invitation. An expired invitation opens its own page, Invitation expired, with two facts, Invited with the address and Expired with the day, and one sentence: > {inviter} can send you a new link. or Whoever invited you can send a new link. Beside Sign in stands the support address, support@tightly.io. An invite link works for seven days from the day it is sent; any read-write member of the organisation can send another. ## What to do 1. Check the sentence names the right address; a store install can still type its own. 2. Type a password against the rule shown, or press **Continue with Google** or **Continue with Microsoft** to use the provider account that matches the invited address. 3. Press **Sign up**. 4. Open the link Tightly emails to confirm the account, where one is asked for. 5. On an expired invitation, press **Sign in** if you already hold an account, or ask the inviter (named beside the support address) for a new link. The invitation is used once. A new account lands in Setup on its first step; a store install lands on Where does your data live with the store already connected. Tightly's invitation carries the kind of company and the plan on its own side; nothing about a plan is printed here. ## When it is empty or failed Refusals print under the control that failed, in the server's words: > The provided token is expired. > The provided token is not a valid token. > The provided email '{email}' is already in use. > The provided email domain is not usable. An invitation link that does not decode reads "This invitation link isn't valid; ask whoever sent it." with the form withheld and Sign in as the one door. An account created but not yet confirmed reads "Your account is created; open the link sent to {email}." Where nothing was served: > Your account was not created; try again. A typed address that does not read as one is named under the field before anything is sent: > Email is invalid --- # Version Source: https://docs.tightly.io/help/access/version Reviewed: 2026-09-07 ## The question this page answers Which version of Tightly is this tab running? A customer asks it when Tightly's support has pointed them here, usually while chasing down a fix that has since shipped; a Tightly person asks it to see that a release landed on a particular tab. The page is signed-in only and has no door in: you reach it by typing the address or from a support instruction, and it stays that way on purpose, since it names nothing a reader would otherwise want to browse to. ## What you see ::: shot page ::: The title is > Version and one sentence carries the one figure the page has: > This tab is running Tightly {version}. The version is the release's own number, the same string as the release tag and the changelog heading, stamped into the build when it was made and never measured against the server. A tab whose build did not carry a number reads "This tab does not name its Tightly version." instead, and has no Copy version. Under the sentence, one table of build facts: Update, reading Waiting when the browser has a newer build ready, None waiting when it checked and found none, or Not checked where this build does not check; and Checked with the time of the last check, where one happened. The version itself is not repeated as a row, because the sentence already carries it. Opening this page asks the browser directly whether a new build is waiting, the same ask the app makes on its own every thirty minutes, so Checked reads the moment this page loaded rather than an older one. Copy version copies the number and reads back Version copied where the button was. ## What to do 1. Read the number to a Tightly person, or press **Copy version**. 2. Where **Update** reads Waiting, press **Reload** to take it. 3. Press **Home** to leave; there is no rail on this page. The same update otherwise arrives by itself when the tab has been idle, or is offered in the app's own notice when it is busy or a scenario draft is open. ## When it is empty or failed There is no read on this page and no failed state; the sentence is a build-time fact. A guest who types the address is sent to Sign in with this address remembered, and lands here after. An organisation still in Setup is sent to its step. While a Tightly person is working in your account on your behalf, their banner stands above the page. --- # A failed read, never an empty page Source: https://docs.tightly.io/help/platform/a-failed-read Reviewed: 2026-09-07 ## The sentence There is no one sentence: each page says in its own words that it could not read, and most say it beside a Try again. Three of them, from the Board, the Inbox and the commitment book: > Your board could not be read just now. > Your inbox could not be read just now. > The commitments could not be read just now. On Tightly Lite the Board says it of its charts: > Your charts could not be read just now. A commitment's room that could not read shows: > Unable to load commitment. Where an address names a commitment that is not there, the read answers with one sentence, and the room prints the same words: > No commitment with that id. The Pre-season page, which reads one commitment by its address, says the same in its own words: > No commitment at this address. A page whose code did not arrive says so once, with Try again: > This page could not be loaded. A page that does not exist at all is the Not found page, with one door, Home: > This link is out of date, or never existed. ## What it means Tightly draws two different things for two different facts. A page with nothing in it says what is missing and why, in one sentence: nothing declared, nothing sold, no season waiting. A page that could not read says that, in one sentence, and draws no table under it, because a read that failed has no verdict and an empty grid would claim one. The rule behind it is the platform's: a failed request never renders as a friendly empty state, and an absence is never a zero. A record that cannot be found is the same kind of thing. It is a failed read, never an empty position: the address named something Tightly does not hold, or no longer holds, so the page prints its sentence for that read and nothing else. The commitments' money read is the plainest case of the rule underneath: a figure it cannot compute comes back empty with a stated reason, never as a zero. None of this is an engine that is late or stale: an engine says so with its own state word and date. And none of it is a refusal: a refusal names a rule the write met, and a failed read names no rule. ## What to do next Press Try again where the page offers it; most failed reads last a moment. Where the sentence names a record, check the address you followed: a link from an old message, an export or another person may name a commitment that has since been retired, or one on another tenant's book. If you hold more than one tenant, switch from the account menu, which lists your Tenants by name. If the same page fails on the second try, [Something went wrong](../access/error) says what to do next; nothing in your data has changed. ## Who to ask Ask Tightly on the page answers from this article. Where a whole page could not be loaded, its sentence carries the request's number when you point at it; give that number to whoever helps you, and they can find the same request in Tightly's logs. --- # Absence words Source: https://docs.tightly.io/help/platform/absence-words Reviewed: 2026-09-07 ## What it is An absence word names which kind of nothing a figure is: two or three words for a fact nobody has. Tightly never prints a bare zero for an unknown, because a zero is a decision somebody made or a count somebody took. Where the absence stands decides how it shows. In a table cell it is one muted dash, the same mark in every cell on every page, and the word stays behind it. Everywhere else, in a head's figure, a state, a chip or a sentence, the word prints. The words most of the platform uses are Not measured, Not on file, No date, Nothing yet, Not declared and Not computed. ## How Tightly decides it The word is chosen by why the figure is missing, not by where it sits. Nobody measured it is Not measured. No record holds it is Not on file. The date is not known is No date. Nothing has arrived so far is Nothing yet. A number nobody declared is Not declared, and arithmetic over a number nobody declared is Not computed, never a zero: a ceiling nobody declared is never breached. In a table, a generic absence (Not measured, Not on file, No date, Nothing yet, Not counted, Not scored and the others like them) is the dash alone, and a screen reader reads it as its word. An absence whose reason is specific, such as Not stamped on an order, is the same dash, and pointing at it shows the word. The sentence that explains a column of dashes is said once, beside the table or in the page's head, never per row. A table with no rows says one sentence in their place, and where the page names an article, one door to Ask Tightly beside it. No absence carries a state colour: an unknown is not a promise at risk. ## The words on the face | Word | What it says | Where you meet it | |---|---|---| | Not measured | Nobody measured it | An engine's state; behind the dash in a cell | | Not on file | No record holds it | Behind the dash in a cash, category or date cell | | No date | The date is not known | Behind the dash in a date cell, such as a recorded delivery date | | Nothing yet | Nothing has arrived so far | An engine that has had no input; behind the dash in a cell | | Not declared, Not computed | A number nobody set; arithmetic over one | The open to buy ladder and the ledger | | Nobody has said | Nobody recorded whether a booking can walk, or which side a channel sells on | Tightly Connect's book; Settings, Channels | | Not counted | The count could not be taken | A close, a bundle's stock | | Not booked, Not on order | Nothing is booked; nothing is on order | The reorder reading | | Not scored | The week or the term was not scored | A close, hindsight | | Not stamped | An order no commitment claimed | An order's commitment cell | | Not on your plan, Paused, Not on the run | An engine skipped its run, and why | An engine's state; Integrations | | Not connected, Waiting for first sync | A source has not synced yet | Integrations | The engine words are one vocabulary for a sync and for an engine: Failed, Paused and Not on your plan read the same on [Integrations](../settings/integrations) and in an engine's state, and the rest of an engine's states are in [Engine states](../engines/engine-states). Tightly Connect has words of its own for whether an account reports, Reporting, Gone quiet and Never reported, and Sell-in only on a grade. An answer from Ask Tightly whose date cannot be read has its own word, in [Stamps](../ask/stamps). ## What you can do about it An absence word is an invitation, not an error. Not on file clears when the record is typed: a cost on the variant, a lead time on the supplier. Nothing yet clears as the input arrives: a sync, an account's report, a first sale. Not measured clears when the measuring run has what it needs, and the engine's own sentence says what that is. Not declared clears when somebody declares the number, and the figures that stood on it are computed from then on. Nobody has said clears when somebody records the answer. Not on your plan and Not on the run ask nothing of you. To read the word behind a dash, point at it or read the sentence beside the table. ## Glossary line Absence words: Not measured, Not on file, No date, Nothing yet, Not declared and the rest of the lexicon; the word for a fact nobody has, drawn as a muted dash in a table cell and printed as a word everywhere else, never a zero. --- # The for-sale page Source: https://docs.tightly.io/help/platform/for-sale-pages Reviewed: 2026-09-07 ## The sentence Under the room's name, on the page a marked row opens, one sentence naming the plan that sells it: > Sold with Tightly Pro. > Sold with Tightly Essentials+. The brief's sentence for the same page, which a scripted question quotes and no face prints: > Commitments is sold with Tightly Pro; your plan is Essentials. Beside a marked row on the Essentials rail, one faint word: > Pro > Essentials+ The server's own refusal is a different sentence, explained in [Plan denial](../platform/plan-denial); this page does not compose it. ## What it means The rail you see is the rail your plan has. On Essentials five doors stand on it that your plan does not open: Commitments and Analogs, each carrying the word Pro, and the Catalogue, Families and Tightly Connect, each carrying Essentials+. On Essentials+ the Catalogue, Families and Tightly Connect open, and Commitments and Analogs stay marked. Each marked row is a leaf; opening one reveals no locked rooms inside it. What opens is this page and only this page: the room's name, the one sentence, one act, and a table of what the room holds, its rooms named one per line. There is no pitch, no chip, no checklist and no video, and no figure either: the room's numbers belong to a plan your organisation does not hold, and a page that has read nothing does not date itself. The sentence names no plan of yours on purpose. A store install did not choose a plan and is not told it has one; an Essentials reader is told what sells the room, not what she lacks. The room is named once, by the page's title, so the sentence does not repeat it. The page keeps one grammar rather than a sentence per surface, so every page that refuses a room this way says the same four words, with the plan that sells it in them. The for-sale address itself answers Not found on Pro, on Lite and for a room your plan already opens, because none of those is being sold anything. Lite is never sold anything. A row Lite cannot sell is absent from the rail, never marked, because the App Store listing may not point at an externally billed plan. What a store install can still reach is a typed address only a paid plan opens: a Pro room, a Tightly Connect room, or Skills, which reads > Sold with Tightly Essentials+. There the reader is told, not sold: the page's own name, the one sentence, no rooms listed and no way to buy. ## What to do next Press Book time with Tightly; it opens Tightly's booking page, and the conversation starts from the rooms the table names rather than from a pitch. Where the page offers a second door, as it does on Settings › Approvals and Settings › Finance, it is [Billing](../settings/billing), where the plan you are on is written. Nothing on the page changes with a press, and the marks on the rail stay until the plan changes. On Lite the edition is chosen in the store listing, not inside the product. ## Who to ask Ask Tightly on the page answers from this article and from [Tiers](../platform/tiers). On a guided plan, the Tightly person your onboarding plan names is the same conversation as the act, without the booking. --- # Plan denial Source: https://docs.tightly.io/help/platform/plan-denial Reviewed: 2026-09-07 ## The sentence Where a request reaches a room your plan does not include: > This organisation's plan does not include {capability}. It is sold with {tier}. The two words in braces are filled by Tightly: the capability the room requires, and the plan that sells it, each in the word the product prints rather than the wire's, so the plan reads Lite, Essentials, Essentials+ or Pro. The raw values travel beside the sentence as fields of their own, for a surface to read. The words are the server's, and a page that prints them prints them as they came. ## What it means Every room a plan sells stands behind one gate, and the gate asks whether your organisation holds the grant for that capability. For Skills and Purchase order sync it also asks the plan itself, so an Essentials organisation is let in without a grant of its own. So the sentence states two things and no more: this room needs a capability your organisation does not hold, and which plan includes it. Commitments, the buyer portal, Demand signals, Market pricing, Planning and the email agent are sold with Pro. Tightly Connect, the baseline engine, Product data and Analogs are sold with Essentials+. The public API, Skills and Purchase order sync are sold with Essentials+. It is not a role denial. Your seat is fine; the organisation's plan is what stops here. A role denial is a different sentence that offers nothing to buy: > Your access level does not cover this. Ask an admin on Team to raise it. It is not a failed read: the room exists and answered. It is not a room that has vanished. On the Essentials rail the row stays, marked for sale, and opens [the for-sale page](../platform/for-sale-pages), which prints its own sentence naming the plan rather than this one. On Lite a row Lite cannot sell is absent from the rail, and a typed address the plan does not open reads nothing at all: what prints over the page's own name is the for-sale page's verdict, `Sold with Tightly Pro.`, `Sold with Tightly Essentials+.` or `Sold with Tightly Essentials.`, with no rooms listed and nothing to buy. This sentence is met where a request itself reached Tightly: an act on a page, a call through the API, or a read Ask Tightly made for you. ## What to do next On Essentials or Essentials+, the for-sale page offers Book time with Tightly and lists what the room holds; [Billing](../settings/billing) is where the plan you are on is written. On Lite nothing is for sale inside the product; the edition is chosen in the store listing. No press and no retry changes the answer: the sentence is the same on every visit until the grant changes. If you believe your organisation already holds the plan and still reads this, the plan and the grant have parted. An admin at your organisation asks Tightly; Tightly's staff read the grant on your record and can change the plan and its features. ## Who to ask Ask Tightly on the page answers from this article and from [Tiers](../platform/tiers). On a guided plan, the Tightly person your onboarding plan names can say what your plan holds. On Lite there is no person to ask; Ask Tightly and the help centre are the door. --- # The four-five-four calendar Source: https://docs.tightly.io/help/platform/the-calendar Reviewed: 2026-09-07 ## What it is The four-five-four calendar is the retail calendar Tightly plans on. A quarter is thirteen weeks split across its three months as four, five and four, so a year is fifty-two weeks of seven days, and every week starts on a Sunday and ends on a Saturday. Because fifty-two weeks are a day short of a calendar year, a fifty-third week returns every five or six years and is added to the last month of the fiscal year. The commitments' weekly verdicts, the buy plan and open to buy by week, and Home's net sales all stand on this grid. ## How Tightly decides it You declare the month your fiscal year starts in. The year then begins on the Sunday on or before the first of that month, which is what makes the week count exact: consecutive year starts are always a whole number of weeks apart, so whether a year has fifty-two or fifty-three weeks is arithmetic, never a guess. On Pro, a plan's allocation in Finance can also be read on a four-four-five calendar; the weeks are the same Sunday weeks and only the months group differently. It is not the ISO week, which starts on Monday. One place counts Monday weeks on purpose: an answer from Ask Tightly that groups by week uses Monday weeks, the same buckets its charts draw, so an Ask Tightly week and a planning week can start a day apart. Most comparisons to last year move back three hundred and sixty-four days, not a calendar year, so a retail week meets the week that fell on the same weekday a year before. The ledger steps back by the calendar's own shift instead, three hundred and seventy-one days when the year between has fifty-three weeks, and a style's sell-through against its predecessor matches by fiscal week number, so a fifty-third week has no counterpart. Only complete weeks are scored: a week that has not closed is not in a verdict, and a head that says Week {n} of {N} counts the retail weeks the season's window encloses; a rolling window counts up and has no total. ## The words on the face Home labels its net sales currency and compares complete recorded weeks with the same weeks last year. Its chart labels weeks by their recorded date. The ledger's chart labels its weeks Wk with the fiscal week number. It spans the observed cover readings and keeps missing weeks within that span visible as gaps. A commitment's readings open with Week {n} of {N} where the window has a total. ## What you can do about it Set the fiscal year's start month in Settings under Planning, in the Calendar set; an admin changes it, and on Pro the season split and its windows sit beside it. Read the weekly verdict on Monday: it scores the week that closed on Saturday, a retry on Tuesday scores the same week, and a figure that lands after that week's verdict is written is never written back into it. ## Glossary line The retail calendar of four, five and four week months the platform plans on. --- # The brand chair and the retailer chair Source: https://docs.tightly.io/help/platform/the-two-chairs Reviewed: 2026-09-07 ## What it is Every company that plans a season with Tightly sits on one side of a table. A brand makes or sources products and sells them to shoppers and to accounts. A company in the retailer chair buys from brands and sells to shoppers through its own stores and online. Both plan on the same product and the same calendar. What differs is who the counterparty is and where the stock sits, so the words swap. The chair is which side you sit on. Setup asks it with three rows, one per chair, each a name and a sentence: > Brand > > We make or source products and sell them to shoppers and to retail accounts. > > Retailer > > We buy from brands and sell to shoppers through stores and online. > > Both > > We sell our own products through our own stores and to accounts. ## How Tightly decides it Setup's first question asks what kind of company this is, with no plan named. Settings and General shows it beside the vertical as Kind of company, Brand, Retailer or Both, and any seat with write access can change it; the rail re-words on the next frame. A company with no recorded chair reads as a brand, because every organisation predates the question and every one was onboarded as a brand. The chair is stated, never inferred from your channels or your locations. The chair never sells a room. What you can open is your plan's; the chair chooses the words, adds or removes a few rail rows, and, when it is recorded, fills in a few settings nobody has answered yet: the names of your product levels, the scope a new commitment opens with, the grain Demand forecasting opens at, which way Tightly Connect points, and the kind a new location is created as. A setting you have already answered is never overwritten. A company in the retailer chair, on any plan, reads its rail in that chair's words. Both is the brand's words plus the store words, never a third vocabulary: a brand that owns stores gains Location as the covering word for its warehouses and stores, and the store, online, drop-ship and franchise channel types, and keeps everything else. ## The words on the face | Object | Brand chair | Retailer chair | Both | |---|---|---|---| | Who we buy from | Supplier | Vendor | Supplier | | Where stock sits | Warehouse | Store; the settings page is Stores & DCs | Location | | What comes in | Delivery | Receipt | Delivery | | What the counterparty sold | Sell-out | Sales (your own tills) | Sell-out | | The weekly file | Sell-out intake | Share sales | Sell-out intake | | Moving stock between places | Transfer orders | Store transfers | Transfer orders | | Deciding where the buy lands | Allocation | Allocation to stores | Allocation | | Price cuts | Markdown candidates | Markdowns | Markdown candidates | | The counterparty's book | Account book | Vendor book | Account book | | The counterparty's plan | Account plan | Vendor plan | Account plan | | A style graded for a counterparty | Account baseline | Vendor grade | Account baseline | | The room where two sides meet | Tightly Connect | Tightly Connect | Tightly Connect | | Money claimed back | Claims | Chargebacks | Claims | | How the counterparty performed | Supplier scorecard | Vendor scorecard | Supplier scorecard | | Channel types | Direct, `Wholesale`, Account channel | Stores, Online, Drop-ship, Franchise; the brand's three codes read Direct, Franchise, Franchise | The brand's plus the store's | The brand's middle channel word is quoted as the face prints it; the room those legs are read in is Tightly Connect. Words that do not move: Home, Ask Tightly, Inbox, Skills, Commitments, Selling periods, Bench, Demand forecasting, Demand signals, Events, Sales performance, Open to buy, Cash & payments, Investment review, Catalogue, Families, Analogs, Stock on hand, Stocktakes, Settings. The retailer chair adds its own rows: Receipts and Vendor scorecard in the buy book, and Markdowns in Finance where the plan draws Finance. A retailer that owns no brands of its own has no Manufacturing orders row. The brand's Tightly Connect rows, including Reports, leave the retailer's rail, and an address on that side answers: > The brand's side, and yours is the buyer portal. Connect uses account for the relationship record and retailer for comparisons and selection. The retailer chair continues to use its own stock, sales and vendor workspaces. ## What you can do about it Answer the Setup question as the company is; choose Both rather than a lie when it genuinely is both. Change the chair in Settings and General when the company changes; nothing is deleted, and the words follow on the next frame. Ask Tightly's suggested questions follow your chair, its help search reads the articles for your chair, and the help centre carries a chair switch for the same reason. ## Glossary line The chair is which side of the table a company sits on, the brand chair, the retailer chair or both; it chooses the words on every face and never what the plan includes. --- # Tiers: Lite, Essentials, Essentials Plus, Pro Source: https://docs.tightly.io/help/platform/tiers Reviewed: 2026-09-07 ## What it is A tier is the rung of the commercial ladder your organisation is sold on: Tightly Lite, Tightly Essentials, Tightly Essentials+ or Tightly Pro. Lite is the free edition installed from the Shopify App Store. Essentials is the paid edition of the same rail, with Tightly's people guiding the setup. Essentials+ is Essentials with Tightly Connect open (Accounts, Order intake and Sell-out intake, one account's book and record) plus the baseline engine and product data (the Catalogue and Families), without the plan of record. Pro is the edition with the commitment room: Commitments, Finance and the whole of Tightly Connect, the Showroom and the buyer portal included. On a face the plan's one word is Essentials+; the wire spells it `essentials_plus`. ## How Tightly decides it The rail's tier is one predicate, read from three facts. The install channel comes first: an organisation born from the App Store listing is Lite whatever grants it holds. Then the commitment room's own grant: where it is held the tier is Pro. Then the Tightly Connect grant: where it is held the tier is Essentials+; otherwise it is Essentials. What a page or an act opens is decided by the grants on your subscription; from Essentials+ up, the plan's own list is a floor under those grants, so a move onto one of those plans takes effect with no second step. The tier decides which rows the rail draws, and Ask Tightly answers only from articles written for your plan. ## The words on the face | Rail | What it holds | |---|---| | Lite | Home and Inbox; Ask Tightly with the Board, which on Lite holds ten fixed charts; under Plan, Selling periods, Demand (Demand forecasting, Demand signals where the grant exists, Events, Sales performance) and the Budget; under Product, Components; under Supply, Replenishment with Smart Replenishment, the Buy book (Bench, Container planning, Purchase orders, Inbound shipments, Transfer orders, Suppliers, Manufacturing orders) and Inventory (Stock on hand, Floor & stockroom, Stocktakes); Settings without the Developer group, Approvals or Finance | | Essentials | The same rows, with Skills under Ask Tightly and a Board of the answers you keep, plus five doors marked for sale, each a leaf: Commitments and Analogs marked Pro; Catalogue, Families and Tightly Connect marked Essentials+; Settings gains the Developer group: API keys, Webhooks and Metrics | | Essentials+ | Essentials with the Catalogue and Families open and the Connect zone open on Accounts, Order intake and Sell-out intake; Commitments and Analogs stay marked Pro | | Pro | Home, Inbox and Mail; Ask Tightly with the Board, Reports and Skills; under Plan, Commitments, Demand and Finance; Product with Catalogue, Families, Analogs and Components; Supply with Orders, the Buy book and Inventory; Tightly Connect with the Showroom; Settings with Approvals and Finance | Nothing for sale is shown on the Lite rail: a row Lite cannot sell is absent, never marked, and a zone emptied by that leaves with it, because the App Store listing may not point at externally billed plans. On Essentials a marked row opens one page that names the room and what it holds, with one sentence naming the plan that sells it > Sold with Tightly Pro. > Sold with Tightly Essentials+. and one act, Book time with Tightly. Inside Tightly Connect on Essentials+ the Showroom, an account's pre-season plan and the buyer's pages stay Pro's and answer the first sentence. Ask Tightly and Settings ride every rail. On Lite, Ask Tightly does four things: the fixed charts, reporting a bug, answering a how-to question from the help centre, and pointing at the page the answer is about. A chart of your own and a skill are not on Lite, so the Board there is ten fixed charts and Skills is not a Lite room. Smart Replenishment and the Budget are rows on the Lite, Essentials and Essentials+ rails and not on Pro's; on Pro the Smart Replenishment address opens the Bench. A typed address the plan does not open shows the page's own name over the same sentence, for example > Sold with Tightly Essentials. for Skills typed on Lite, where the page offers nothing to book. ## What you can do about it On Essentials or Essentials+, open a marked row and Book time with Tightly; the page lists what the room holds so the conversation starts from the rooms, not from a pitch. On Lite, nothing is for sale inside the product; the store listing is where the edition is chosen. On any tier, the rail you see is the rail your plan has, so a room you cannot find is a room your plan does not include rather than one you have missed. Billing says which plan you are on. ## Glossary line Lite, Essentials, Essentials+, Pro: the commercial ladder as sold; Essentials+ is Essentials with Tightly Connect Lite, product data and the baseline engine, and Pro is the edition with the commitment room. --- # Glossary Source: https://docs.tightly.io/help/glossary/glossary Reviewed: 2026-09-24 ## Commitments | Word | One line | Retailer chair | |---|---|---| | Commitment | A season's promise, declared in five numbers with a basis each, scored weekly against what traded, and kept in one room. | same, scoped by default to department, class and channel legs | | The five | Availability floor, sell-through pace, margin floor, buy envelope, chase reserve: the five declared terms of a plan of record. | same | | Availability floor | The share of the range that must be in stock, declared, below which the promise is at risk. | same | | Sell-through pace | The declared rate at which the season sells down, read weekly against a pace shape. | same | | Margin floor | The declared margin the season may not close under. | same | | Buy envelope | The money a commitment may place in total; the living ceiling the ladder is read against. | same, the OTB | | Chase reserve | The part of the envelope held back to buy in season; Tightly suggests fifteen percent as a stated convention, labelled as one, and you declare the number. | same | | Terminal stock ceiling | The most stock a boxed window may end with. | same | | Envelope | The living ceiling: a rate for a rolling window, a pot for a boxed one. | same | | The ladder | Declared, reserve held, open to commit, placed: four terms that tie in cents. | same | | Open to commit | Declared, less the chase held, less committed; the one name for the headroom rung. | same | | Free to commit | Open to commit less what is drafted; the two differ by reserved, and neither is a label for the other. | same | | Left to work | The pre-season head's clause for envelope less hold less landed; a lowercase clause, never a column. | same | | Placed | Money on orders that have been issued. | same | | Reserve held | The chase reserve while it is still held back. | same | | Chase, release | Spending the reserve in season; Release the chase is the act and its page. | same | | Buy lock | A declared lock on the buy; undeclared reads as unknown, never as unlocked. | same | | Stage | Where a commitment is in its life: Pre-season, Active, Closed. | same | | Status | What the declaration is: Awaiting a second signature, Signed off, Closed, Retired. | same | | Autonomy | What the engines may do on a commitment without a person: Proposing means they propose and a person approves; never a status. | same | | Two signatures | An admin declares and a second admin signs; under the Single approver policy one admin may do both, and the commitment names the policy it was signed under. | same | | Sign off | The second signature, and the act's one spelling on a button and a title. | same | | Declaration | What was declared, on what basis, and what it binds; each version kept. | same | | Version | One declaration as it stood when signed; a change is a new version, never an edit. | same | | Weekly verdict | The verdicts engine's Monday reading of each declared term against what traded, with a confidence word. | same | | Variance tier | Held, Watch, Breach: how a declared term stands against its number, with Not scored where no week was scored. | same | | Pace shape | Glidepath, corridor, wave: the shape a sell-through pace is expected to follow. | same | | Cover | How long stock lasts at a rate; the ledger reads it at the recent rate and at this week's rate. | same | | Selling period | A product selling window, including historical dates, set up under Products → Selling periods without a commitment. Demand inside it is shaped by the week, or by the day when it is short. | same | | Pre-season | The buy agreed before the season opens, and the page that reads it. | same | | Agreed book | What each account has agreed to take on a commitment, style by style, at wholesale price. | same | | The room | The commitment's own container: its identity, its basis and its readings; the desk's Standing pane after the merge. | same | | The desk | Where a planner works the buy of one commitment, line by line, with the readings beside the grid. | same | | Reading | One question of a commitment answered beside the grid; the walls become readings. | same | | Wall | A surface of the room; after the container merge, a reading of the desk. | same | | Scenario | A what-if recorded as draft; promoted with a backed prediction or declined with a reason, never removed. | same | | Worked depth | The units a person decided for one style on the desk; zero is a real cut. | same | | Set by | The desk's cell naming who decided a depth: Forecast, You, Cut to zero, Engine. | same | | Size split | The shares of a style's depth by size, totalling ten thousand basis points. | same | | Colour split | The shares of a style's depth by colourway, keyed on the merchant's own names. | same | | Hindsight | What a closed commitment kept or missed, and how well its declaration was calibrated. | same | | Handover | One range replacing another: an outgoing style and its successor, read by units left, cover left and the week the replacement is due. | same | ## Money | Word | One line | Retailer chair | |---|---|---| | Buy plan | The Merchandise plan page: three company dials, growth, margin and cover, carving last year's shape into this year's buy. | same; OTB by class is the reading | | The split | Which side of the business the money is on, by category and month; read on Sales performance at the side grain. | same | | Open to buy | The plan's residual: receipts needed less what is on order, per month; read week by week on the ledger. Not Open to commit (the ladder's headroom) and not Budget left. | same | | Budget left | The company's approved receipt budget less placed purchases. | same | | Ledger line | One of the twelve lines of the weekly ledger, each with a provenance word, a basis and a roll-up rule. | same | | Intake | What is placed with a supplier for a week, on the ledger; what has already been delivered is the line under it. | same | | Cash gate | Fifty-two weeks of supplier terms against open buy, read against a declared floor. | same | | Under the floor | A week whose projected balance falls under the cash floor; the verdict names each one. | same | | Cash floor | The declared balance the gate may not go under. | same | | Opening balance | The declared cash the gate starts from. | same | | Carrying cost rate | The declared cost of holding stock, a percentage in points. | same | | Finance declarations | The numbers no order can supply, declared in Finance: cash limits, plan costs, landed costs, planning assumptions, investment targets and stock recovery. | same | | Investment review | Hindsight across closed seasons at cost, by line of the book. | same | | Hurdle | The return a line must clear; below hurdle is said only after more than one close. | same | | Committed money | Cash an account has committed to pay in a week, on the cash gate; where no week carries it, the basis that counts it is not offered. | same | | The Budget | The fiscal year as a money grid and the open-to-buy arithmetic; a room of the Lite, Essentials and Essentials+ rails. | same | | Sales performance | What sold, at what price, against last year; on every rail. | same | ## Supply and stock | Word | One line | Retailer chair | |---|---|---| | Supplier | Who we buy from. | Vendor | | Purchase order | An order to a supplier; Drafted until it is confirmed. | same | | Drafted | An order created and not yet sent; where a drafted purchase order lands. | same | | Delivery | What comes in against a purchase order; Record delivery is the act and its page. | Receipt; the page is Receive | | Transfer order | Moving stock we already own between places. | Store transfers | | Proposed moves | Transfers the engine proposes and nobody has issued; a view of Transfer orders. | same | | Manufacturing order | Making finished goods from components; on every plan's rail, and absent in the retailer chair for a company that owns no brands. | same | | Components | The components a product is made from, its bill of materials; the page is named Components. | same | | Bench | Where orders are built before issue; staging reserves no envelope. | same | | Add to Bench | The act that stages worked lines onto the Bench; the one spelling on the desk's foot and in a chip. | same | | Lead time | Purchasing days for a SKU at a warehouse, from the applicable supplier terms, then the SKU warehouse default, then the company default. | same | | Minimum order | The least a supplier will take, in units or money. | same | | Warehouse | Where stock sits. | Store; Location when both | | Stock on hand | What is physically held, by variant and location. | same | | Stocktake | A count of what is held, recorded against what the book says. | same | | Allocation | Deciding where an inbound quantity lands: the Where it goes section of a purchase order, on every plan. | Allocation to stores | | Plan, commit, call-off, receipt | The four states an allocation moves through. | same | | Size pack | The sizes a line ships in, as one unit. | same | | Bundle | Products sold together as one; stock is the tightest component. | same | | Product | One style, with its variants. | same | | Variant | One sellable item: a product in one size and colour. | same | | Family | A template of the fields a group of products declares, and which it owns. | same | | Join | A product joining a family and taking its fields. | same | | Attribute | A declared, measured, auto-filled or connector-read field on a product. | same | | Look-alike | A product a new style is forecast from; never a forecast itself, with a confidence word. | same | | Health | Healthy, caution, critical; healthy is quiet. | same | | Tag | A word the engine puts on a product for how it sells: high growth, declining, stocked out, new arrival and the rest. | same | | Capital quadrants | Winners, Traffic, Sleepers, Bleeders, classified per variant and location from velocity and margin. | same | | Cover gap | Covered, a gap of thirty days or less, a deep gap. | same | ## Demand and engines | Word | One line | Retailer chair | |---|---|---| | Forecast | What the forecasting engine expects to sell, with its basis word and its confidence word. | same | | Demand forecasting | The page where consumer forecasts are read and worked; active commitment forecasting requires eligible DTC channels. | same | | Forecast performance | The forecast's track record against doing it by hand over the scored weeks, read in a drawer on Demand forecasting; the Forecast engine status page is hidden while it is redesigned. | same | | Demand signals | Named findings from web traffic, each with a money figure. | same | | Event | A week a merchant plans around; a room of the Demand group on every plan's rail. | same | | Engine | A named job that computes what a page shows, each with its own name and state: Forecast, Grades, Price response, Attribution, Analogs, The buy, Weekly verdicts and the rest. | same | | Engine state | Running, Late, Stale, Failed, Partial, Not measured, Paused, Not on your plan, Nothing yet, Not on the run. | same | | As-of | When the figures were computed, printed once per page as words. | same | | Inputs through | The newest sale or event a run computed from. | same | | Provenance word | Computed, declared, measured, read in, or the producing engine's own name, such as forecast, grades or price response: where a figure came from. | same | | Confidence word | Watch closely for a low-confidence forecast and New item for one with little history, never a percentage; firm, thin, not measured for a verdict. | same | | Forecast basis | Own record, Reference method, From a predecessor, Fallback method. | same | | Grade | What the baseline engine puts on a style for one account: measured, reference, brand. | Vendor grade | | Price response | What the pricing engine measured: measured, reference, prior. | same | | Reorder | The replenishment engine budgeted by a commitment's envelope, in season. | same | ## Tightly Connect | Word | One line | Retailer chair | |---|---|---| | Tightly Connect | The room where a brand and its accounts meet: the season shown, the book, the sell-out and the seat. | absent from the rail; its addresses name the buyer portal | | Account | The account relationship we sell to through Tightly Connect. | none; franchisee where the reader wholesales to franchise doors | | Account book | What an account has committed to, by season, and how firm it is. | Vendor book | | Account forecast | Expected consumer sell-out by product, variant, door and week from a supported account source in Connect, separate from customer orders and DTC replenishment. | Forecast for my stores | | Buy plan | Dated account deliveries derived from a reviewed shared forecast, stock and terms. | Buying plan | | Account baseline | The account and style grade the baseline engine measures. | Vendor grade | | Season | A commitment an account has a line or a showing in, as the buyer's portal lists it. | same | | Showing | The season shown to one account, made from a commitment: an object, a share, a link. | same | | Product ranges | Shared product offers, kept separate from sales forecasts and confirmed orders. | same | | Reports | Scoped account trading reviews, saved views, CSV exports and printable reports. | Uses the buyer portal's scoped Analysis view | | Sell-in | What an account ordered. | same | | Sell-out | What an account sold on, by week, from its own file. | Sales, our own tills | | Sell-out intake | Where an account's weekly file is taken in. | Share sales | | Unreported week | A week an account sent no file; absent, never zero. | same | | Sell-in only | The word on a grade whose account reports no sell-out: what you see is what they ordered. | same | | Firmness | Firm, Can still walk, Nobody has said: whether a booked line can still move. | same | | Can still walk | The firmness word for a line an account may still cancel until its date. | same | | Ship window | The dates a line ships between. | same | | Cancel by | The last day a line can still walk. | same | | Take | What the seller proposes an account takes, and where the number comes from. | same | | Hold | A buyer's answer to a showing: units put on hold, with no price. | same | | Claim | Money an account claims back over a delivery that was late, short or wrongly labelled. | Chargeback | | Scorecard | How a supplier has performed: on time, in full, what landed at cost and at retail, and claims; a room of the retailer chair's rail. | Vendor scorecard | | Portal | The buyer's edition of the frame: eight pages, no Ask. | same | | Seat | A buyer's grant to the portal, per account, with the pages it carries. | same | ## Ask Tightly, Skills and the Inbox | Word | One line | Retailer chair | |---|---|---| | Ask Tightly | The one agent, on every page and in the panel; never another name on a face. | same | | Answer | A chart, a figure or a written answer; never a `response`. | same | | Board | Where answers are kept: Save to board, Remove from board, View board. | same | | Add to Home | Keeping an answer on Home; once there it reads On your Home. | same | | Report | An answer pinned to a commitment's room, re-read live for everyone in it. | same | | Conversation | One exchange with Ask Tightly, named once it has a name. | same | | The workspace | The page where one kept answer is interrogated; scratch until Update saved insight. | same | | Stamp | The claim on a kept answer's figures: Live, Data as of, Not yet refreshed, Snapshot, Re-running while it is read again, and a word of its own where the date cannot be read. | same | | Movement word | The change since saved, with an up or down glyph in ink, or Unchanged, Restated, Not comparable, First read. | same | | Refresh | Re-running a kept chart or figure on the Board; written answers and saved table snapshots are not refreshed. | same | | Re-read | Running the same deterministic query again, live. | same | | Chip | A control on an answer that moves one value in the question: its window, grain, breakdown, comparison or threshold. | same | | Yours | The violet word on a chip a person held against the engine's choice. | same | | Basis | The table of choices an answer stands on. | same | | Resources | The articles and records an answer cites, as chips. | same | | Start with | The starters offered in an empty composer. | same | | Weekly recap | The Monday summary, listed among your conversations. | same | | Reviewed | The help stamp: the date a person approved an article, as words. | same | | Being updated | The word beside a help stamp while an article's sources have moved and its text is last approved. | same | | Skill | Something that runs without you, written with Ask Tightly in a conversation. | same | | The ladder | Tells you; Drafts it, you approve; Does it, then tells you; Does it quietly. | same | | Rung | Where a skill stands on the ladder. | same | | Gate | What a version must pass before it may act unattended. | same | | Eval | A set of cases a skill is tested against, each a check In code or Judged. | same | | Run | One execution of a skill: Ran clean, Rejected by a person, Waiting to act, Parked, waiting on a decision, Failed, Running now, Queued. | same | | Change ledger | Every change a run made, before and after, and whether it can go back. | same | | Undo everything | The run's one way back. | same | | Noticed | A skill Ask Tightly proposes from what it saw: Take it, Not worth it. | same | | Inbox | What waits on you, row by row; an empty inbox says Nothing waiting. | same | | The eleven kinds | Parked run, Approval, Task, Commitment amendment, Autonomy promotion, Plan change, Markdown proposal, Tightly Connect reorder, Sell-out file, Supplier update, Account claim. | same | | Waiting on you | A row that needs a person's decision, in its kind's own two verbs, most often Approve and Reject. | same | | Act | A write a person performs on a page; Ask proposes it and never performs it unasked. | same | | Door | A control whose label is the name of the page it opens. | same | | Consequence line | The sentence before an act's one button saying what becomes true. | same | | Receipt | The result of a write, said where it was made. | same | ## The platform | Word | One line | Retailer chair | |---|---|---| | Tier | Lite, Essentials, Essentials+, Pro: the commercial ladder as sold; Essentials+ adds Tightly Connect Lite, the baseline engine and product data, and Pro is the edition with the commitment room. | same | | Add-on | No longer sold: product data, Families and attributes, is included with Essentials+ and Pro, and an Essentials customer who bought it before 6 Sep 2026 keeps it. | same | | For sale | A room the rail marks with one faint word because the plan does not include it; absent on Lite. | same | | Rail | The left navigation, drawn per tier and per chair. | same | | Staff book | The knowledge base's staff-only half: the admin pages, the runbooks and the refusals read from the inside, retrieved only by a seat on one of Tightly's own staff rungs at the staff email domain, and by the on-call agent. | same | | Zone | A heading of the rail: Plan, Product, Supply, Connect. | same | | Room | A page a rail row opens; a zone's rows are its rooms. | same | | Head | The top of every page: the verdict, the figure row, the basis line, the as-of. | same | | Verdict | The head's one sentence: the judgement and the figure that decides it. | same | | Figure row | The counts and totals under the verdict, in numerals with labels. | same | | Basis line | What the page's figures stand on, such as the currency and the grain, said once per page. | same | | Chair | What kind of company this is: the brand chair, the retailer chair, or both; it chooses the words and the rows. | same | | Setup | Connect, Review, Finish: the wizard, in Self-serve and Guided modes. | same | | System of record | The system a setup step reads a record from. | same | | Synced | Not started, Syncing, Synced, Failed: a connection's state in setup. | same | | Integration | A connected system: a store, an ERP, a warehouse, a mailbox. | same | | Data mapping | The wizard that maps a file's columns onto Tightly's fields. | same | | Mail | Threads bound to suppliers and accounts, and the drawer that opens one. | vendors and franchisees | | Signal | A fact lifted from a thread that changes something: a date, a price, a claim. | same | | Proposal | An act offered for review; a business document opens its fields in Ask Tightly before a person explicitly applies it. | same | | Knowledge base | The book Ask Tightly reads: one article per concept, page, act and refusal, each cited. | same | | Help centre | The public site of the same book, under /help/ at docs.tightly.io. | same | | Four-five-four calendar | The retail calendar of four, five and four week months the platform plans on. | same | ## Absence and state words | Word | One line | Retailer chair | |---|---|---| | Not measured | Nobody measured it; in a table cell it is the word behind a muted dash. | same | | Not on file | No record holds it. | same | | No date | The date is not known; in a Since cell it is the word behind the dash. | same | | Nothing yet | Nothing has happened here so far. | same | | Never reported | An account that has never sent a file. | same | | Gone quiet | An account that reported and then stopped. | same | | Reporting | An account whose files arrive. | same | | New | A style with no accepted predecessor, so there is no last time to compare. | same | | Not on your plan | The engine is off for this plan. | same | | Paused | Paused with the connection. | same | | Not on the run | Not scheduled in this run. | same | | Not scored | A verdict that could not be scored this week; a faint ring, never a state colour. | same | | Watch | A promise worth watching and not yet at risk; a hollow dot. | same | | Nobody has said | Nobody recorded the answer, such as whether a booked line can walk; a third answer, never folded into yes or no. A number nobody declared reads Not declared. | same | | Not stamped | An order no commitment claimed. | same | ## Words that left Old words and wire words, each with the word the face prints instead. The lint fails a body that uses one outside a code span or a quoted served sentence. | Left | Say | Why | |---|---|---| | `Basket`, `Buy Bench` | Bench | The place has one name: Bench as a title, the Bench in a sentence. | | `Tightly IQ` | Ask Tightly | One agent, one name on every face (`RULES.md` 23). | | `Baselining` | the baseline engine, the grade | The engine has Byron's name; the output is a grade. | | `PIM` | Families, attributes | Never on a face (platform map rule 4). | | `prepack` | size pack | Platform map rule 4. | | `WSSI` | open to buy, week by week | US copy says open to buy. | | `MFP` | buy plan; the page is Merchandise plan | Platform map rule 4. | | `Wholesale` | Tightly Connect | The room's name; the wire's channel code prints as a chair's word. | | `Business Impact`, `Replay` | nothing | Deleted. | | `Headroom` as a label | Open to commit | One name for the headroom rung; Free to commit is its own figure. | | `Send to the Bench`, `Stage to bench` | Add to Bench | The lexicon's one spelling of the act. | | `Sign it off`, `Sign-off` as a word | Sign off | The act's one spelling. | | `Awaiting sign-off` | Awaiting a second signature | The status's one spelling. | | `Propose only`, `Propose` as a state | Proposing | The autonomy word. | | `retailer` in the brand chair | account | The customer's customer is an account. | | `trading partner` | account | A wire name. | | `warehouse` in the retailer chair | store | The chair's word. | | `response` | answer | Except price response, the pricing engine's word. | | `endpoint`, `schema`, `null`, `backend`, `evaluator`, `model` | the read, the shape, Nobody has said, Tightly, the verdicts engine, the forecast | Wire words never stand on a face (`RULES.md` 11). | | `N/A`, a bare 0 for an unknown | a muted dash in a table cell; Not measured, Not on file, No date, Nothing yet elsewhere | Absence is a word, drawn as a dash in a cell (`RULES.md` 10 and 52). | Forecast accuracy is available only for a measured selection. A missing score is not a zero error. --- # Aug 11, 2026 Source: https://docs.tightly.io/help/releases/2026-08-11 Reviewed: 2026-09-07 Stocktakes sit beside Stock on hand, the Bench checks every supplier minimum, and a delivery is recorded on its own page. ## What changed - [Stocktakes](../product/stock-on-hand) sit beside [Stock on hand](../product/stock-on-hand): a list of counts, quantities edited against system stock, and an uncounted line that is never a zero. - [The Bench](../replenishment/the-bench) drafts a purchase order only once every order meets its supplier's minimums, and a shortfall is shown in units with a one-press fix. - On [Purchase orders](../supply/orders), a delivery is recorded on its own page. - [Demand forecasting](../demand/demand-planning) leads with how much more accurate the forecast is than a four-week average, and the chart and period columns drag back up to two years together. - The explanation of a recommended quantity answers directly: stock on hand, orders in transit, lead time, expected arrival and what that stock covers. - The forecast's words say [look-alike](../demand/forecast-words), the past product whose demand shape a new one follows. - [Sales performance](../demand/sales) shows Profit leaks and Winners at risk with only the rows each view needs. - Stock, products and suppliers read position as days of cover and open create flows as pages. - [Transfer orders](../supply/orders) are offered to every organisation. - [Ask Tightly](../ask/ask-tightly) has a room of its own, with the box at the top and your recent conversations under it. - Charts can draw the line their figures are judged against and mark the periods that miss it in amber. - A room your plan does not include shows [what it is](../platform/for-sale-pages) rather than disappearing from the rail. - [Setup](../ask/setup-connect) runs on one progress rail, skipping the steps a single-channel organisation does not need. - [Team](../settings/team) sorts by first name, and [Data](../settings/data) has a column chooser and saved views. - Amber marks the exception and ink states it. - [Forecast trust](../demand/forecast-trust) fills the width, names the sales data it stands on, and has a way back. - The rows Ask Tightly returns are a full table, and a table whose read failed says so. - A crash that blanked the demand pages is fixed. ## Where to read more - [Stocktakes](../product/stock-on-hand) - [Stock on hand](../product/stock-on-hand) - [The Bench](../replenishment/the-bench) - [Purchase orders](../supply/orders) - [Demand forecasting](../demand/demand-planning) - [The forecast's words](../demand/forecast-words) - [Sales performance](../demand/sales) - [Transfer orders](../supply/orders) - [Ask Tightly: answers, the Board, the workspace](../ask/ask-tightly) - [The for-sale page](../platform/for-sale-pages) - [Setup: Connect](../ask/setup-connect) - [Team](../settings/team) - [Data](../settings/data) - [Forecast trust](../demand/forecast-trust) --- # Aug 11, 2026 · Essentials and Pro Source: https://docs.tightly.io/help/releases/2026-08-11-essentials Reviewed: 2026-09-07 Demand signals read as a prioritised queue, and the Board holds the answers you keep. ## What changed - [Demand signals](../demand/demand-signals) read as a prioritised queue, each figure carrying the arithmetic behind it so you can see how the finding was reached. - [The Board](../ask/board) is where kept answers live, and an answer edited in the chat moves into [the workspace](../ask/the-workspace). - A written answer [kept on Home](../ask/act-keep-an-answer) no longer prints its title twice. ## Where to read more - [Demand signals](../demand/demand-signals) - [The Board](../ask/board) - [The workspace](../ask/the-workspace) - [Keep an answer: Board, Home, the room](../ask/act-keep-an-answer) --- # Aug 11, 2026 · Lite and Essentials Source: https://docs.tightly.io/help/releases/2026-08-11-lite Reviewed: 2026-09-07 The Budget is an editable twelve-month grid, and Smart Replenishment has a Projection view. ## What changed - [The Budget](../replenishment/budget) is an editable twelve-month grid with no setup steps: fill values quickly, save a draft, and read a summary table; spend against the monthly allowance and revenue sit in two aligned panels, each on its own scale, so neither figure distorts the other. - The Budget's monthly grid uses the shared table, so column alignment, the totals row and the fiscal year summary read like every other table, and an empty section is divided from the next by a line rather than running into it. - [Smart Replenishment](../replenishment/smart-replenishment) has a Projection view: one toggle redraws your filtered selection as a time-phased stock projection, keeping filters, search and sort, and a selection too large for it says its line count rather than failing quietly. ## Where to read more - [The Budget](../replenishment/budget) - [Smart Replenishment](../replenishment/smart-replenishment) --- # Aug 11, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-11-pro Reviewed: 2026-09-07 Declaring a commitment is a full page, and the book lists every commitment in one place. ## What changed - [Declare](../commitments/declare) is a page of its own rather than a drawer, and the declare steps run on it in order. - Commitments has a clearer design: an empty state previews the filled view, the five-number step is a form, and the summary shows your results, confirmed items, any refusals and unresolved numbers. - [All commitments](../commitments/the-book) lists every commitment in one place, each row with [the five](../commitments/the-five-terms) as adjustable values and a state mark, and a five-step Declare wizard. - [The buy plan](../finance/buy-plan) filters, searches and sorts, with a Reset and an applied-filter count, sortable category, month and total columns, and a pinned fiscal-year total row. ## Where to read more - [Declare](../commitments/declare) - [All commitments](../commitments/the-book) - [The five terms of a plan](../commitments/the-five-terms) - [The buy plan](../finance/buy-plan) --- # Aug 12, 2026 Source: https://docs.tightly.io/help/releases/2026-08-12 Reviewed: 2026-09-07 The dark theme is readable on every page, and a status tag prints its word instead of a colour. ## What changed - The dark theme has a designed colour scale for buttons and surfaces, with contrast checked on every page in both themes, and the theme toggle sits at the top right of every page. - In Settings, [Integrations](../settings/integrations) is a list rather than a grid, and an integration not yet connected offers Request integration. - [Setup](../ask/setup-connect) shows at most one exit, offers log out only where [the import has reached a dead end](../ask/setup-importing), and lists only the systems Tightly supports. - Answers carry honest [stamps](../ask/stamps): Not yet refreshed until data has been fetched, Data as of only when it has, and an answer queued for a refresh carries the amber mark. - Status tags print Active or Deactivated in a neutral tag instead of green and red, which the most common colour blindness cannot tell apart; amber still marks an exception such as a pending invite or a draft product. - Tooltips open as soon as you hover, with a short grace period between a trigger and its panel. - Browser zoom no longer closes an open menu, and N filters applied is no longer a second way to clear filters where the panel already has one. - The keyboard focus ring on the rail is fully visible, and the active rail item is clearly marked. - Home loads faster, with nothing changed in what it shows. - In the dark theme the date picker, tabs, bulk edit controls, amber figures, drawers, the wordmark, pinned table columns and tooltips all read correctly, and validation messages meet contrast in the light theme. - The count badge on a multi-select control stays while you hover, and the rail's hover menus open at the speed and position of tooltips. ## Where to read more - [Integrations](../settings/integrations) - [Setup: Connect](../ask/setup-connect) - [Importing, and the dead end](../ask/setup-importing) - [Stamps: Live, Data as of, Not yet refreshed, Snapshot](../ask/stamps) --- # Aug 12, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-12-pro Reviewed: 2026-09-07 Signing off and closing are full pages, and a commitment covers a list of entries with exceptions. ## What changed - Every commitment has [a room](../commitments/the-room) of its own: [the five](../commitments/the-five-terms) with their stated basis, a live preview of what the commitment arms, and its receipt history. - A commitment's scope is a list of entries, each included or excluded, so this category except these three sizes is one commitment, and the most specific entry wins. - [Sign off](../commitments/sign-off) is a page: every figure as submitted, what approval means, and that no order is placed and no money moves; the person who declared cannot press it. - [Close](../commitments/close) is a page: what will be recorded, how the envelope performed against what landed, and where remaining stock goes. - [Retire](../commitments/retire) is a page: the five that will no longer be defended, where the balance lands, and a required reason. - [Amend](../commitments/amend) opens from the room as three steps: each figure beside the control that changes it, a preview of what changes, and a required reason that also submits; the previous version is kept in full. - The room shows week-by-week consumption against the declared [glidepath](../commitments/pace-shapes) on [the four-five-four calendar](../platform/the-calendar), and a verdict appears only when recorded. - The room shows the envelope to the cent along [the ladder](../commitments/the-ladder): declared, chase reserve, open to commit, committed, remaining and forward need. - [Declare](../commitments/declare) shows how large the slice is before any target is typed, and Continue waits for the engine's own compiled verdict. - [All commitments](../commitments/the-book) leads with the money and shows each window as a timeline with today marked, and a season's [agreed book](../commitments/agreed-book) sits beneath its position and says plainly when none has been provided. - Receipts read as sentences, one line per channel, and the margin floor carries a note that no engine enforces it. - The declare flow submits what you declared, with unallocated spend accounted for and never guessed. - A failed load of the book shows the failure and a retry, never Declare your first commitment over a book that may hold commitments. ## Where to read more - [The commitment room](../commitments/the-room) - [The five terms of a plan](../commitments/the-five-terms) - [Sign off](../commitments/sign-off) - [Close a commitment](../commitments/close) - [Retire a commitment](../commitments/retire) - [Amend a commitment](../commitments/amend) - [Pace shapes: glidepath, corridor, wave](../commitments/pace-shapes) - [The four-five-four calendar](../platform/the-calendar) - [The ladder: declared, held, open to commit, placed](../commitments/the-ladder) - [Declare](../commitments/declare) - [All commitments](../commitments/the-book) - [The agreed book](../commitments/agreed-book) --- # Aug 13, 2026 Source: https://docs.tightly.io/help/releases/2026-08-13 Reviewed: 2026-09-07 The accuracy figure names the weeks it measured, and a page that has gone stale reloads instead of hanging. ## What changed - On [Demand forecasting](../demand/demand-planning), the accuracy figure against doing it by hand names the number of weeks it was measured over rather than a default of 52, and the wording follows the count. - The app no longer hangs silently when a page is no longer available after a release: it reloads on its own or shows a message with a reload, and a slow connection is not mistaken for a failed page. - [The for-sale mark](../platform/for-sale-pages) on a locked rail row renders in both themes. ## Where to read more - [Demand forecasting](../demand/demand-planning) - [The for-sale page](../platform/for-sale-pages) --- # Aug 13, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-13-pro Reviewed: 2026-09-07 A commitment's state says what has and has not been measured, in five distinct words. ## What changed - In [the commitment room](../commitments/the-room), the assortment breaks down by [capital quadrant](../product/capital-quadrants), each item with its quadrant, options and depth; items with no quadrant yet are their own group rather than grouped with the underperformers. - The basis page is a table of fact rows in place of dense paragraphs, each row able to carry a longer explanation inline; nothing was removed. - Consumption, coverage and needs attention read as marks, key and value rows and tables; a row with no figure shows a word rather than a blank dash. - [All commitments](../commitments/the-book) and the room keep every relevant figure and drop the paragraphs; route names, method names and mode names never print. - A commitment's [state](../commitments/stage-and-status) is one of five: Not tested yet, the window has not opened; Awaiting first week, the window is open and no week is scored; On track, a retail week is scored and the commitment is kept; Not scored since a date, scoring stopped; No score expected, the window closed; each has its own mark, so the meaning never rides on colour, and a breach always passes through. - The list states what its figures cover and how items are priced, and its state column shows the calculated verdict, never Armed. - Step 2 of [Declare](../commitments/declare) no longer contradicts step 4 about what a season with no declared assortment covers; it describes how the live catalogue is resolved. ## Where to read more - [The commitment room](../commitments/the-room) - [Capital quadrants](../product/capital-quadrants) - [All commitments](../commitments/the-book) - [Stage and status](../commitments/stage-and-status) - [Declare](../commitments/declare) --- # Aug 20, 2026 Source: https://docs.tightly.io/help/releases/2026-08-20 Reviewed: 2026-09-07 Every control has a name a screen reader can say, and charts follow the theme in both modes. ## What changed - The rail shows the rooms your plan includes, the same way every time. - In Settings, [General](../settings/general) enforces the organisation name's 100 character limit when saving. - Accessibility across the product: every control carries a name, every grid has a name and announces its row count and its loading, the skip link and page landmarks are on every page, route changes are announced, the tab shows the page name, inline editing opens by keyboard on every editable cell, and focus rings are consistent. - Charts follow the theme in both modes: no white canvas behind Board or chat charts in the dark theme; gridlines, axis labels, legends, tooltips and data labels follow the theme; end labels no longer overlap; a chart with no categories is refused before it draws. - On [Demand forecasting](../demand/demand-planning), revenue mode's Actual and Last year rows show recorded revenue rather than units re-priced at today's list price. ## Where to read more - [General](../settings/general) - [Demand forecasting](../demand/demand-planning) --- # Aug 20, 2026 · Essentials and Pro Source: https://docs.tightly.io/help/releases/2026-08-20-essentials Reviewed: 2026-09-07 A product's family sits beside its category, and a missing family is proposed from similar products. ## What changed - On the [Catalogue](../product/products), a product's attributes drawer shows its [family](../product/families) beside its category; the family decides which attributes the product must have, so the drawer says what is missing, and a product with no family says what that means for its completeness rather than showing a blank. - A product with no family gets a proposal from similar products, with its confidence in plain words from [the families and attributes engine](../engines/families-and-attributes); nothing changes until you accept, and when no proposal can be made the drawer says why: the product is too different, its neighbours are unclassified, or it has no image yet. ## Where to read more - [Catalogue](../product/products) - [Families](../product/families) - [The families and attributes engine](../engines/families-and-attributes) --- # Aug 20, 2026 · Lite and Essentials Source: https://docs.tightly.io/help/releases/2026-08-20-lite Reviewed: 2026-09-07 Allocation shows where a purchase order's committed units go. ## What changed - [Allocation](../replenishment/allocation) shows where a purchase order's committed units are allocated, by location and the channels each location serves, with capacity, cover and pack constraints labelled; a location with no declared capacity reads unknown rather than unlimited. ## Where to read more - [Allocation](../replenishment/allocation) --- # Aug 20, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-20-pro Reviewed: 2026-09-07 The book ranks what needs attention this week, and the on-track chart shows the declared band. ## What changed - [The commitment room](../commitments/the-room) shows the forecast and the week-by-week sell-through behind each commitment, so you can see what drives the numbers. - The on-track chart draws the declared target as a shaded band, the forecast dashed and actuals solid; amber appears only for a sustained issue, on or off track is position in the band, never red or green, and weeks with stock confirmed beyond the measured window read beyond the horizon. - The assortment is shown style by style with quadrant, options, depth and size run; a style whose locations disagree on quadrant reads Mixed with the split shown, and where the data cannot answer the table says whether it is a gap in your data or a limit of the measurement. - [All commitments](../commitments/the-book) leads with the commitments that need attention this week, ranked by urgency, each row showing its envelope at a glance, and [Declare](../commitments/declare) shows a live summary of what each step commits you to. - [Amend](../commitments/amend), [Retire](../commitments/retire), [Close](../commitments/close) and [Sign off](../commitments/sign-off) each lead with a state summary, then the key figures and the consequences: Amend shows before and after and the budget it frees, Retire what returns to the pool, Close that it is one way, and Sign off the full declaration with the requester's name and reason. - Finance shows real data: [Open to buy](../commitments/open-to-buy) runs on live weekly flow, and [the split](../finance/the-split), [the cash gate](../finance/cash-gate) and [investment review](../finance/investment-review) say which feed they are waiting on rather than showing placeholder figures. - [Release the chase](../commitments/chase-release) releases the reserve against the style it was held for, moves the money back into open to commit and says that released money is not ring-fenced. ## Where to read more - [The commitment room](../commitments/the-room) - [All commitments](../commitments/the-book) - [Declare](../commitments/declare) - [Amend a commitment](../commitments/amend) - [Retire a commitment](../commitments/retire) - [Close a commitment](../commitments/close) - [Sign off](../commitments/sign-off) - [Open to buy](../commitments/open-to-buy) - [The split](../finance/the-split) - [The cash gate](../finance/cash-gate) - [Investment review](../finance/investment-review) - [Release the chase](../commitments/chase-release) --- # Aug 24, 2026 Source: https://docs.tightly.io/help/releases/2026-08-24 Reviewed: 2026-09-07 An allocation split saves and says what happened, and every button wears the one brand colour. ## What changed - Recording, cancelling and receipting [an allocation split](../replenishment/act-allocate) each follow their own path, and the page says how many units were released, how many remain unassigned and whether earmarks were set; what could not complete says what did not happen and why. - In Settings, [Planning](../settings/planning), the fiscal year's shape is yours to set: the start month is no longer locked once a plan exists, a Spring/Summer length splits the year into its halves, both show the season dates they produce for this year and next as you adjust, and the page says which plans would keep their shape and which would differ. - [Ask Tightly](../ask/ask-tightly) keeps a comparison changed through a follow-up, compare to last year instead of the period before, exactly as it keeps one set by the control. - Buttons across the product use the one primary style, and a check keeps the retired purple out. - Keyboard focus rings use one colour in ink, dark in the light theme and lighter in the dark, meeting contrast in both; the loading screen matches. ## Where to read more - [Allocation acts: plan, commit, call off, receipt](../replenishment/act-allocate) - [Planning](../settings/planning) - [Ask Tightly: answers, the Board, the workspace](../ask/ask-tightly) --- # Aug 24, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-24-pro Reviewed: 2026-09-07 A commitment's planned buy goes to the Bench for review, and Selling periods are yours to define. ## What changed - A commitment's planned buy can be [added to the Bench](../commitments/act-send-to-the-bench), and [the Bench](../replenishment/the-bench) shows for each agreed buy how its lines would be spent and how much budget remains; budget moves only when an order is approved. - The five declared figures sit as one strip under the head of every [Pre-season](../commitments/pre-season) page, [the plan](../commitments/the-plan), [Work the buy](../commitments/the-desk), [scenarios](../commitments/scenarios) and [Open to buy](../commitments/open-to-buy), marked not yet scored until the first score and live weekly after it. - The same strip sits on the in-season readings, [Reorder lines](../commitments/reorder-lines), [Allocation](../commitments/allocation), [Supply](../commitments/supply) and [Handovers](../commitments/handovers), with a toggle to read the live view against past scored weeks. - [Selling periods](../commitments/selling-periods) live under Commitments: a period sets the window of a drop or season and records what ran within it; the page says what the period unlocks and whether the window meets the 90 day rule for a reference forecast; the latest period can be duplicated as a start, and periods list oldest first because each is measured against the one before. - Room pages open from a link or a new tab, and rows on [All commitments](../commitments/the-book) are links you can reach by keyboard. - A refused declaration brings its reason into view in plain words with no field names, a commitment with no budget submits with none rather than a zero ceiling read as a breach, and the buy lock picker opens 52 weeks before the window. - Commit validates and saves in one step and opens All commitments, and any refusal is shown on the page. - A period's product search covers the whole window and separates three counts, shown, matched and recorded; a genuine first drop is distinct from a period whose predecessor is not yet chosen. ## Where to read more - [Add to Bench](../commitments/act-send-to-the-bench) - [The Bench](../replenishment/the-bench) - [Pre-season](../commitments/pre-season) - [Declare the plan](../commitments/the-plan) - [Work the buy](../commitments/the-desk) - [Scenarios](../commitments/scenarios) - [Open to buy](../commitments/open-to-buy) - [Reorder lines](../commitments/reorder-lines) - [Allocation on a commitment](../commitments/allocation) - [Supply on a commitment](../commitments/supply) - [Handovers](../commitments/handovers) - [Selling periods](../commitments/selling-periods) - [All commitments](../commitments/the-book) --- # Aug 26, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-26-pro Reviewed: 2026-09-07 A reorder line shows its justification, and the desk is a reconciliation against every declared target. ## What changed - Each [reorder line](../commitments/reorder-lines) on a commitment shows the cover it provides, what the order delivers and the cost of not placing it; a figure that cannot be measured reads unknown, never zero. - The envelope meter works in season: a received mark, the declared envelope it tracks against, and any unmeasured amount with its reason instead of an empty bar. - What needs a person covers in season as well as pre-season: changes awaiting a decision and lines that would exceed the remaining season budget before they become orders; a queue that cannot be read is a blind spot, never a clear. - [The buy plan](../finance/buy-plan) has its monthly view back: the month shape seeded for each category is visible and editable, and a named range of months can be shifted in one act. - Opening a style on [Work the buy](../commitments/the-desk) shows what its forecast stands on, how many weeks of cover its depth gives, the cost of over or under buying, and the impact of any edit you make. - The desk is a reconciliation: a standing summary shows every declared target beside where the working buy stands and names any figure that cannot be measured; the buy is a hierarchy, category, style, colourway and size run, whose parent totals roll up and cannot be typed; a depth set at group level spreads across styles by forecast; every edit is a working copy recorded as [a scenario](../commitments/scenarios); sell-out is read per door. ## Where to read more - [Reorder lines](../commitments/reorder-lines) - [The buy plan](../finance/buy-plan) - [Work the buy](../commitments/the-desk) - [Scenarios](../commitments/scenarios) --- # Aug 28, 2026 Source: https://docs.tightly.io/help/releases/2026-08-28 Reviewed: 2026-09-07 A purchase order delivery says what remains, and a completed delivery reads quietly in ink. ## What changed - On [Purchase orders](../supply/orders), a delivery with no lines left reads No lines remain and never offers Mark all as delivered; completing an order skips empty deliveries rather than flagging a false mismatch; a real mismatch carries an amber mark and a full delivery confirms quietly; a draft whose only delivery is empty keeps its guidance and the option to plan a future delivery. - The completed tag on [a recorded delivery](../supply/record-delivery) no longer uses green; it reads as a calm confirmation rather than a colour signal. ## Where to read more - [Purchase orders](../supply/orders) - [Record delivery](../supply/record-delivery) --- # Aug 28, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-28-pro Reviewed: 2026-09-07 Every account has a page of its own, and depth on the desk comes from your own trading. ## What changed - Each account has [its own page](../connect/the-account): agreed pricing and terms, sell-through by location and a full history of changes. - [Accounts](../connect/accounts) leads with what each account has booked: booked value, the [firm against walkable](../connect/firmness) split, cancellation terms and sell-out, sorted by the risk of orders walking. - [Purchase orders](../supply/orders) show the commitment each order draws from, and Not stamped where none does. - [The commitment room](../commitments/the-room) leads with a plain summary in place of a disclaimer, the five appear as individual state marks, and the split carries [Re-assign](../commitments/re-assign) beside it. - On [Work the buy](../commitments/the-desk), the envelope meter shows three segments, the working buy, the held reserve and the open remainder, with any spend beyond the envelope marked amber. - Product rows on the desk carry the image at one height, so the range reads like a line sheet, and the desk uses the full width of the screen. - Depth is calculated from your own trading, weeks on sale by rate of sale over sell-through, set once and adjustable per category; every calculated value is a suggestion until you confirm it, and a depth far from the suggestion asks for confirmation and is never blocked. - Your track record lists every act on the commitment with who, when, what changed and the reason given, and nothing here moves your score. - The style panel shows the price each account signed from the live [agreed book](../commitments/agreed-book), and a held line reads sizes and price to follow rather than a zero. - First-run and unscored states across Commitments read as state chips, a short word on the face with the explanation on hover. - The room no longer says no book recorded when a season-level book exists: commitment lines first, then the season's book, and the absence only when both are empty. - The desk presents facts as labelled rows rather than prose, and a scope selector, everything, one channel or one account's booked styles, can be bookmarked. ## Where to read more - [The account](../connect/the-account) - [Accounts](../connect/accounts) - [Firmness: firm, walkable, unknown](../connect/firmness) - [Purchase orders](../supply/orders) - [The commitment room](../commitments/the-room) - [Re-assign a commitment](../commitments/re-assign) - [Work the buy](../commitments/the-desk) - [The agreed book](../commitments/agreed-book) --- # Aug 30, 2026 Source: https://docs.tightly.io/help/releases/2026-08-30 Reviewed: 2026-09-07 A variant's page is a room of its own, and the warning glyph draws at icon size again. ## What changed - Under [Stock on hand](../product/stock-on-hand), [a variant's page](../product/variant) is a room: a composed verdict with one door, its runway against the next reorder landing, price, supply and activity readings, a demand curve, a proposed reorder cluster, and the attributes the recommendations read. - The warning glyph draws correctly at icon size on every page; it had resolved to an illustration that collapsed into a shape nobody could read. ## Where to read more - [Stock on hand](../product/stock-on-hand) - [The variant room](../product/variant) --- # Aug 30, 2026 · Essentials and Pro Source: https://docs.tightly.io/help/releases/2026-08-30-essentials Reviewed: 2026-09-07 Families is a page of its own, and the Join Desk lists the incoming products waiting for a family. ## What changed - [Families](../product/families) opens as a page of its own beside the [Catalogue](../product/products), and its head says how much of the catalogue is connected and how much spend has no family behind it. - On the Join Desk you can read each family as a grid of colourways and declared variations, and declare or change how a family varies; a rename keeps the same identity and a removal is refused with its reason where orders exist. - Incoming products are reviewed with their confidence in plain words: place one into a family, redirect it, or start a new family in four steps. - An appearance can be disconnected without being lost, a key that maps to two products can be resolved, the full history reads as sentences, and any act can be undone. - Undoing Make it its own family or Start the family moves the product back before removing the empty family, so no empty shell survives its own undo; if another product joined the shell meanwhile, the undo is refused with its reason. - The Join Desk reads exactly what is served, field for field, and a refusal is shown as served rather than paraphrased. ## Where to read more - [Families](../product/families) - [Catalogue](../product/products) --- # Aug 30, 2026 · Lite and Essentials Source: https://docs.tightly.io/help/releases/2026-08-30-lite Reviewed: 2026-09-07 The stock projection opens on items with a forecast. ## What changed - On [Smart Replenishment](../replenishment/smart-replenishment), the projection opens on items with a forward forecast; blank rows are hidden behind a count with a one-press toggle, and a row that stays blank says why it has no forecast. ## Where to read more - [Smart Replenishment](../replenishment/smart-replenishment) --- # Aug 30, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-30-pro Reviewed: 2026-09-07 The room's front door follows the season's stage, and the desk reads the engine end to end. ## What changed - [The commitment room](../commitments/the-room) opens on the stage you are in: pre-season, a readiness checklist where every item is a door; in season, a weekly reading with scored verdicts and What requires action this week; at the end of the season, a close-out of declared against landed with a door to [Hindsight](../commitments/hindsight). - The room states the declared envelope once and draws spend as [one ladder](../commitments/the-ladder), declared, committed, placed, received; the split beneath is a bar chart that is also a table, one row per category; an empty room still shows the declared plan, hatched and labelled. - On [Work the buy](../commitments/the-desk), the style table carries swatches, an editable weekly rate per row, derived and minimum quantity marks, a state column, and cut styles kept as reference rows; opening a style shows five tabs, Depth, Forecast, Cost and return, Sell-out per door, Predecessor. - The desk reads the engine end to end: shallow plus chase holds the chase portion as a placeholder and names every skipped style's reason, an over-bought style with measured elasticity gets a suggested price reduction logged as [a scenario](../commitments/scenarios), and [releasing the chase](../commitments/chase-release) names the winning style and shows any refusal as served. - The desk's sheet lists styles in merit order with the cut line drawn inside the table, and a drawer opens at the style or colourway you pressed. - [The buy plan](../finance/buy-plan) is declared from three company numbers, growth, intake margin and turn, from which the rest derives live, and a category that differs takes a stated exception with a written reason. - [Accounts](../connect/accounts) shows each account's own claims, the value of each and their notes in their own words, with accept or dismiss on the row. - [Each account](../connect/the-account) shows how it can be reached, its contacts and the email domains that match incoming messages to it; an account with no domain says so, because without one its mail cannot be linked. - A cut line or a stated absence spans the whole row, and opening an account from the list opens the account rather than the sign-in screen. ## Where to read more - [The commitment room](../commitments/the-room) - [Hindsight](../commitments/hindsight) - [The ladder: declared, held, open to commit, placed](../commitments/the-ladder) - [Work the buy](../commitments/the-desk) - [Scenarios](../commitments/scenarios) - [Release the chase](../commitments/chase-release) - [The buy plan](../finance/buy-plan) - [Accounts](../connect/accounts) - [The account](../connect/the-account) --- # Aug 31, 2026 Source: https://docs.tightly.io/help/releases/2026-08-31 Reviewed: 2026-09-07 A teammate's permissions open from their row. ## What changed - In Settings, [Team](../settings/team), View permissions on a teammate's row opens a summary of what that person can and cannot do across the product, from their role and access. ## Where to read more - [Team](../settings/team) --- # Aug 31, 2026 · Essentials and Pro Source: https://docs.tightly.io/help/releases/2026-08-31-essentials Reviewed: 2026-09-07 Skills has a home of its own. ## What changed - [Building a skill](../ask/new-skill) is a guided conversation in [Ask Tightly](../ask/ask-tightly): as you say what the skill should do, its definition assembles itself beside the chat, it is tested against your own last 90 days before anything goes live, and activating it lands you back in Ask Tightly. - [Skills](../ask/skills) has a home: the list with pending approvals and each skill's state; [the skill editor](../ask/skill-editor), which checks the description as you type and publishes only once the evals pass; [the run log](../ask/skill-run), with everything a run changed and Undo everything in one press; and Suggestions, what Ask Tightly noticed might be worth automating, each with its evidence. ## Where to read more - [New skill](../ask/new-skill) - [Ask Tightly: answers, the Board, the workspace](../ask/ask-tightly) - [Skills and the ladder](../ask/skills) - [The skill editor and its evals](../ask/skill-editor) - [A skill's run](../ask/skill-run) --- # Aug 31, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-08-31-pro Reviewed: 2026-09-07 Saving a forecast change inside a live commitment names the commitment and the day its buy locks. ## What changed - On [Demand forecasting](../demand/demand-planning), when a forecast change falls inside an active [commitment](../commitments/the-commitment), the reason picker names the commitment it sits under and the day its buy locks; it informs you and never blocks the save. ## Where to read more - [Demand forecasting](../demand/demand-planning) - [Commitments: the promise Tightly keeps](../commitments/the-commitment) --- # Sep 1, 2026 Source: https://docs.tightly.io/help/releases/2026-09-01 Reviewed: 2026-09-07 Purchase orders can split a line into dated tranches, and every unit on order counts once. ## What changed - On [Purchase orders](../supply/orders), one line or several can be split into tranches when a supplier slips: choose how many units move and give the moved portion its own delivery date; the rest keeps its original promise and the order stays one order. - Everywhere stock on order is read, an order delivered in several drops counts each outstanding unit exactly once, so incoming stock is never overstated; the overstatement had quietly held back reorders on every replenishment reading. - Across every new surface, an absence is [a sentence and never a zero](../platform/absence-words): a failed read says it failed, and a future week does not claim it sold nothing. ## Where to read more - [Purchase orders](../supply/orders) - [Absence words](../platform/absence-words) --- # Sep 1, 2026 · Pro Source: https://docs.tightly.io/help/releases/2026-09-01-pro Reviewed: 2026-09-07 The season is one thread: declare it, arm it, work the buy, run it week by week and close it with a receipt. ## What changed - [The commitment room](../commitments/the-room) opens on [This week](../commitments/this-week), the season drawn as sold against expected weekly bars with a today line where fact ends and forecast begins, cut by side or by one account. - Every figure says what it stands on, the account's own [sell-out or only what they ordered from you](../connect/sell-out-and-sell-in), and an account that reports no sell-out yet [says so](../connect/sell-in-only) in one sentence. - Since Monday lists what changed while you were away, each line a door to where the work lives. - The season's one-way doors say what they close, dated, as they approach, and on [All commitments](../commitments/the-book) a commitment within a fortnight of one carries the attention mark. - Every act lives on the room, [Sign off](../commitments/sign-off), [Amend](../commitments/amend), [Re-assign](../commitments/re-assign), [Release the chase](../commitments/chase-release), [Retire](../commitments/retire) and [Close](../commitments/close), each with one line on what it cannot undo. - [Supply](../commitments/supply) answers whether what is on order arrives before it is needed, with undated units given their own figure. - [Reorder lines](../commitments/reorder-lines) know what is already staged on [the Bench](../replenishment/the-bench), so a parked line is never suggested twice, and read per account. - [An account](../connect/the-account) carries its whole relationship in one place: terms, its people and email domains, and its own claims with accept or dismiss one press away. - [Open to buy](../commitments/open-to-buy) runs on live weekly flow, and [the buy plan](../finance/buy-plan) is three numbers, growth, intake margin and turn. - [The ladder](../commitments/the-ladder) is one everywhere, declared, committed, placed, received, read identically by the room, the desk, the Bench and the orders. - Ask Tightly stands inside the commitment on every reading, and [a kept answer](../ask/act-keep-an-answer) can be pinned to the room. - A continuity commitment reads Continuity, and the room, This week, Reorder lines, [Allocation](../commitments/allocation), Supply and [Handovers](../commitments/handovers) open permanently, with the commitment's setup, covering rules and account selection, reachable from every reading. - Reorder lines, Allocation and Supply draw their frame while they read. ## Where to read more - [The commitment room](../commitments/the-room) - [This week](../commitments/this-week) - [Sell-out, sell-in and the unreported week](../connect/sell-out-and-sell-in) - [Sell-in only](../connect/sell-in-only) - [All commitments](../commitments/the-book) - [Sign off](../commitments/sign-off) - [Amend a commitment](../commitments/amend) - [Re-assign a commitment](../commitments/re-assign) - [Release the chase](../commitments/chase-release) - [Retire a commitment](../commitments/retire) - [Close a commitment](../commitments/close) - [Supply on a commitment](../commitments/supply) - [Reorder lines](../commitments/reorder-lines) - [The Bench](../replenishment/the-bench) - [The account](../connect/the-account) - [Open to buy](../commitments/open-to-buy) - [The buy plan](../finance/buy-plan) - [The ladder: declared, held, open to commit, placed](../commitments/the-ladder) - [Keep an answer: Board, Home, the room](../ask/act-keep-an-answer) - [Allocation on a commitment](../commitments/allocation) - [Handovers](../commitments/handovers) --- # Sep 26, 2026 Source: https://docs.tightly.io/help/releases/2026-09-26 Reviewed: 2026-09-26 Stock buffers are now sized correctly for long lead times. ## What changed - [Cover and safety stock](../engines/replenishment) are now sized correctly at every lead time, given an accurate forecast. Before, the buffer for a long-lead item was too thin for the service level you set: at 120 days, a line set to 95% was actually protected to about 76%, and the gap widened the longer the lead time ran. - The buffer now also grows with how much a supplier's own delivery date moves, read from that [supplier's lead time](../supply/lead-time) on file rather than assumed the same for everyone. - Because of this, [suggested orders](../supply/suggested-orders) on long-lead items may come back larger than before: the extra units are what holding the declared service level actually costs on those lines, not a change in what you asked for. - The service level you actually get still depends on how accurate the forecast is and how much a supplier's lead time varies, not on the buffer formula alone. This fix corrects the formula; it does not promise a number the forecast has to earn too. ## Where to read more - [The replenishment engine](../engines/replenishment) - [Lead time](../supply/lead-time) - [Suggested orders](../supply/suggested-orders)