ASC 606 Transaction Price Allocator

Allocates a transaction price across performance obligations by relative standalone selling price, in integer minor units, by the method and rounding rule you declare. You declare the discount handling (spread proportionally, or assigned to chosen obligation ids), the rounding rule (largest remainder, or round half up with the remainder to the largest obligation) and the residual approach (off, or on for one obligation). The allocated amounts always sum exactly to the price. This tool does not decide the standalone selling prices, does not identify the performance obligations in a contract, and is not an accounting conclusion. Ids and integers only: no free text is accepted or echoed.

🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data , use synthetic or anonymised inputs only.
Inputs
Ids are lowercase letters, digits, hyphen or the low-line character. Leave ssp_minor empty only for the declared residual obligation. Example line: licence,50000,, or support,,,residual
Basis and declarations
Paragraph references into FASB ASC Topic 606 are given by reference only; read the paragraphs in the Codification. ASC 606-10-32-28 to 32-30 set the allocation objective and the relative standalone selling price method. 606-10-32-31 to 32-35 cover estimating a standalone selling price, including the residual approach and its conditions. 606-10-32-36 to 32-38 cover allocating a discount, with the three conditions for assigning it to specific obligations in 32-37. Variable consideration (32-39 to 32-41) and changes in the transaction price (32-42 to 32-45) are out of scope: the tool has no input for either.
The residual_candidate flag is your declaration that the residual-approach conditions of 606-10-32-34 hold for that obligation: the same promise is sold to different customers at a broad range of prices, or no price has been established and it has never been sold alone. The tool checks neither condition. Residual approach on is accepted only for an obligation you flagged as a candidate.
Discount handling assign takes the obligation ids you declare, and asserts that the three conditions of 606-10-32-37 hold for them. The tool checks none of the three. Assignment of a discount comes before any residual estimate.
Re-running the tool with a new price is a fresh one-off allocation. It is not the change-in-transaction-price treatment of 606-10-32-42 to 32-45.
On rounding: largest-remainder rounding (and the half-up rule with the remainder to the largest obligation) are conventions of this tool, not paragraph rules; the paragraphs set proportionate allocation and give no rounding rule. The Share (bps) column truncates each share toward zero, so the shares can sum to 9999 rather than 10000. Allocated amounts are exact and always sum to the price.