{
 "endpoint": "https://otherworldlabs.com/board-feet-and-the-lumber-tally/api.json",
 "page": "https://otherworldlabs.com/board-feet-and-the-lumber-tally/",
 "what_it_answers": "For each board a reader types by its thickness, its width, its length and how many of them they need, how many board feet that board is, how many board feet the whole run is, and what the run is priced at the price a board foot they type. A board foot is 144 cubic inches of board, and the engine prints the division in both of its forms: three dimensions in inches over 144, and two in inches with the length in feet over 12.",
 "shape": "A static document, not a service. There is no request to make and nothing is posted anywhere: this file is the engine written out so that an agent re-doing the arithmetic gets the same answer the page gets. The page's own flat answer is the function apiOutputs in its core script, and every output named below is a field of it.",
 "units": "Inches and feet for a dimension, a count of pieces, board feet for a volume, and United States dollars for money. No other unit: this engine computes no weight, no time, no area and no percentage.",
 "the_page_supplies_no_figure": "Every figure in this arithmetic is the reader's own. The page supplies no species, grade, dryness, treatment, finish, brand, mill or supplier; no nominal-to-actual dimension rule, so it never says what a board sold as two by four actually measures; no typical, standard, recommended, market or regional price a board foot; no waste allowance, overage or cutting-loss figure; nothing structural, so no span, load, spacing, fastener or allowable stress; no rule, code, standard or authority; and no tax, delivery charge or handling charge. The only numbers in the engine that no reader typed are the 144 cubic inches a board foot is and the 12 inches a foot is.",
 "state": {
  "shape": "{ jobRef, rate, boardCount, boards: [ { thickness, thicknessUnit, width, widthUnit, length, lengthUnit, pieces }, ... ] }",
  "boards": "An array of up to twelve boards. Only the first boardCount of them are read; a board object the array does not carry is read as a board with nothing typed on it.",
  "boardCount_blank": "With boardCount blank or unreadable, the run is as long as the boards the state carries, up to twelve, and one board long when it carries none. That is how a fill of the workbook beside the page arrives here, where the rows are the record's own.",
  "blank_is_not_nothing": "A blank dimension and a dimension typed as nothing are ONE state here and the page names them as one: a dimension left blank or typed as nothing. A figure below the bottom of the range its own control offers - nothing included - is read as that dimension not being typed, which is the state the page withholds the run's figures for. A blank RATE and a rate typed as nothing are two different states and the engine keeps those apart: rateTyped is false for the blank and true for the nothing, and a rate of nothing prices the run at nothing.",
  "every_field_is_a_string_or_a_number": "Each figure is read through the same reader: a blank, a whitespace-only value and anything that is not a finite number are read as not typed. A dollar sign, a comma and surrounding space are ignored.",
  "the_thickness_field": "A thickness is read in three forms, and the form it was read in is reported on the page's own row: a decimal (1.25), a fraction (5/4, and any numerator over any denominator above nothing), and a mixed fraction (1 1/4). A fraction with nothing under the line is read as no thickness. Nothing else is read as a thickness.",
  "the_unit_fields": "thicknessUnit, widthUnit and lengthUnit are each one of in and ft, picked on the board's own line beside the figure they govern. The form offers no third value and no blank; a value the form cannot produce is read as in, which is what the two thickness and width controls ship selected. The unit is never inferred from the size of the figure.",
  "reading_at_a_limit": "min, max and step on a number control do not stop a keyboard, so every numeric figure is read INSIDE the range its own control offers for the unit it is in: a figure above the top of the range is read at the top, a figure below the bottom is read as not typed at all, and boardCount is rounded and read inside 1 to 12. Nothing else is rounded on the way in.",
  "the_job_reference": "A label, up to forty characters, whitespace collapsed and trimmed. No figure is computed from it. Blank is allowed and prints as a standing phrase in its place. It is the one thing the page keeps between visits, in this browser, under one key, and it is sent nowhere."
 },
 "inputs": [
  {
   "name": "jobRef",
   "label": "The job, in your own words",
   "type": "text",
   "control": "jobRef",
   "offered": {
    "maxlength": 40
   },
   "blank_means": "no job name; the page prints a standing phrase in its place",
   "note": "A label only. The page supplies no job name of its own."
  },
  {
   "name": "rate",
   "label": "The price a board foot",
   "type": "money",
   "control": "rate",
   "offered": {
    "min": 0,
    "max": 999.99,
    "step": 0.01
   },
   "blank_means": "no rate: the board feet are footed in full and every cash figure on the page is withheld",
   "note": "Yours, off the yard's sign or off the written quote. The page supplies no typical, standard, recommended, market or regional rate."
  },
  {
   "name": "boardCount",
   "label": "How many boards are on this run",
   "type": "integer",
   "control": "boardCount",
   "offered": {
    "min": 1,
    "max": 12,
    "step": 1
   },
   "blank_means": "the run is as long as the boards the state carries, up to twelve",
   "note": "The page names none of the boards for you."
  },
  {
   "name": "thickness",
   "label": "Its thickness, and the unit",
   "type": "text",
   "control": "bThick0 to bThick11",
   "offered": {
    "maxlength": 12,
    "in": [
     0.25,
     12
    ],
    "ft": [
     0.02,
     1
    ]
   },
   "blank_means": "no thickness on that board, so no board foot prints on its row and the run's figures are withheld",
   "note": "A text field, because it reads a decimal, a fraction and a mixed fraction. The range it is read inside is the one its own line's unit offers. It is the number you read off the board or off the quote you hold; the page publishes no nominal-to-actual rule."
  },
  {
   "name": "thicknessUnit",
   "label": "the unit beside the thickness",
   "type": "choice",
   "control": "bThickUnit0 to bThickUnit11",
   "offered": {
    "values": [
     "in",
     "ft"
    ]
   },
   "blank_means": "the form cannot produce a blank; a value it cannot produce is read as in",
   "note": "Picked on the line. The page never guesses which unit a thickness is in."
  },
  {
   "name": "width",
   "label": "Its width, and the unit",
   "type": "number",
   "control": "bWidth0 to bWidth11",
   "offered": {
    "min": 0.25,
    "max": 48,
    "step": 0.01,
    "in": [
     0.25,
     48
    ],
    "ft": [
     0.02,
     4
    ]
   },
   "blank_means": "no width on that board, so no board foot prints on its row and the run's figures are withheld",
   "note": "The control ships at the range for inches, which is the unit it ships selected, and its own min and max move with the unit picked beside it."
  },
  {
   "name": "widthUnit",
   "label": "the unit beside the width",
   "type": "choice",
   "control": "bWidthUnit0 to bWidthUnit11",
   "offered": {
    "values": [
     "in",
     "ft"
    ]
   },
   "blank_means": "the form cannot produce a blank; a value it cannot produce is read as in",
   "note": "Picked on the line."
  },
  {
   "name": "length",
   "label": "Its length, and the unit",
   "type": "number",
   "control": "bLength0 to bLength11",
   "offered": {
    "min": 0.1,
    "max": 20,
    "step": 0.01,
    "in": [
     1,
     240
    ],
    "ft": [
     0.1,
     20
    ]
   },
   "blank_means": "no length on that board, so no board foot prints on its row and the run's figures are withheld",
   "note": "The control ships at the range for feet, which is the unit it ships selected, and its own min and max move with the unit picked beside it. This is the figure the wound names: a length typed in feet where a form asks inches."
  },
  {
   "name": "lengthUnit",
   "label": "the unit beside the length",
   "type": "choice",
   "control": "bLengthUnit0 to bLengthUnit11",
   "offered": {
    "values": [
     "in",
     "ft"
    ]
   },
   "blank_means": "the form cannot produce a blank; a value it cannot produce is read as in",
   "note": "Picked on the line, and ft is what it ships selected."
  },
  {
   "name": "pieces",
   "label": "How many of them",
   "type": "number",
   "control": "bPieces0 to bPieces11",
   "offered": {
    "min": 1,
    "max": 999,
    "step": 1
   },
   "blank_means": "no count on that board, so no board foot prints on its row and the run's figures are withheld",
   "note": "Yours, off your own cut list. The page supplies no waste allowance, overage or cutting-loss figure; an allowance typed into a count is yours and is printed as the count you typed. The control offers whole numbers at a step of one, and a figure typed past that step is read as typed rather than rounded, because rounding a count a reader gave would change their order."
  }
 ],
 "rounding": {
  "function": "rN(v, dp) = sign(v) * Math.round(Math.abs(v) * 10^dp) / 10^dp, on the double, with no epsilon and no decimal library.",
  "at_the_half": "Half away from zero in BOTH directions, because the absolute value is rounded and the sign is put back afterwards. At two decimals a value of -0.005 therefore comes out -0.01 and not -0.00: Math.round(-0.005 * 100) / 100 is -0 on the double. No figure this engine computes is ever negative, so the negative half-cent is a property of the rounding function rather than a state of this page.",
  "what_is_rounded": "Nothing. This engine rounds no figure it computes and no figure a reader types: a dimension, a count, a rate, a board-foot figure and a cash figure are all reported here exactly as the multiplication and the division left them. Every output below is unrounded.",
  "where_the_cent_is": "The rounding function is used where a figure is PRINTED and nowhere else. The page prints cash to the cent, a board-foot figure to two decimals in its tally and to four in its working, and a dimension to two. So the cash a reader reads is this engine's unrounded product shown at the cent, and an agent that rounds at a different step will disagree with the page's display and not with its arithmetic.",
  "what_that_costs_a_reader": "A reader who re-adds the printed two-decimal column by hand may land a hundredth of a board foot or a cent away from the footed figure, because the footed figure was taken on the unrounded figures. The page says so in its own words, in the terms section and in the glance's own sentence about the working.",
  "why_it_is_said_here": "An assistant re-doing this arithmetic the other way round - rounding each row's cash to the cent and adding the rounded figures - will disagree with the page in the last cent on a long run. The order here is: multiply, add, and round only to print."
 },
 "formulas": {
  "boardNBoardFeetPerPiece": "thickness in inches x width in inches x length in inches / 144, where a figure whose own selector reads ft is multiplied by 12 first. Zero where the row is not footed.",
  "the_second_form": "thickness in inches x width in inches x length in FEET / 12. It is the same volume written the other way, because 144 cubic inches is 12 inches of a square foot, and the page prints both for every footed row. The two agree to within a billionth of a board foot at every state the gates sweep - the largest gap measured is 2.27e-13 board feet over 47,992 footed rows - and the page records that as a claim per finished board, which audit.js evaluates at every swept state. They are not bitwise equal: where the division lands on a four-decimal tie the two printed to four decimals can differ by one in the last place, and the page says so rather than promising one figure (round 1, B2).",
  "boardNBoardFeet": "thickness in inches x width in inches x length in inches x the count on that row / 144, in that order: the three dimensions and the count are multiplied together first and the product is divided by 144 once at the end, which is character for character the working the page prints on the row (section E, `T x W x L x pieces / 144`). It is NOT boardNBoardFeetPerPiece multiplied by the count. The two are the same in arithmetic and can differ in the last bits of a double, and the figure published here is the one the page's own printed expression evaluates to, which audit.js check 1 re-evaluates from those printed characters at every swept state. Round 1's B1 found this clause saying the other thing, and 15,742 disagreements over 26 fields followed from the one sentence.",
  "boardNCost": "boardNBoardFeet x the typed rate, unrounded. Zero where the row is not footed or where no rate is typed. The page prints it at the cent.",
  "totalPieces": "the counts on the footed rows, added. null while waiting is true.",
  "listBoardFeet": "the board feet of the footed rows, added, unrounded. null while waiting is true.",
  "listCost": "each footed row's unrounded board feet multiplied by the rate, added, and left unrounded. null while waiting is true and null while no rate is typed. The page prints it at the cent.",
  "no_nominal_size_rule": "There is no step in this arithmetic that converts a nominal size into an actual one, because no such rule is published here. The thickness and the width are the numbers the reader typed, read in the unit they picked.",
  "no_waste_factor": "There is no waste, overage or cutting-loss multiplier anywhere in this arithmetic. The count on a row is the count that was typed."
 },
 "completeness": {
  "a_row_is_footed": "when it carries all four figures: a thickness, a width, a length and a count, each of them read as a figure rather than as not typed.",
  "the_run_is_incomplete": "while any of the first boardCount rows is not footed - whether it carries nothing at all or carries some of the four and not all four. completeBoardCount < boardCount is waiting, and that is the whole of the rule. A row beyond boardCount is not read and does not hold the run back. Changed 2026-10-25 after S11b: the rule used to ask only that every row carrying a figure carried all four, so one board typed out of four asked for printed a footed total for a quarter of an order.",
  "what_that_withholds": "Three figures: totalPieces, listBoardFeet and listCost. They are null here and the page prints the words not yet in their place, with the sentence that says what the run is still without - a row missing one of the four, a row with nothing typed on it, or both - printed in the glance above them.",
  "what_it_does_not_withhold": "Each footed row's own four figures, which boardNBoardFeetPerPiece, boardNBoardFeet, boardNPieces and boardNCost report whatever another row is missing, because a row whose own four figures are all typed is finished in itself. Also the counts: how many rows are footed, unfinished, empty, typed in feet or read as a fraction are reported in every state.",
  "the_rate_is_a_second_condition": "listCost is withheld on its own condition as well: with no rate typed it is null even on a finished run, and the page then prints no cash figure ANYWHERE - not in the headline, not in a tally row and not in the working. One quantity has one answer."
 },
 "states": [
  {
   "state": "a dimension left blank or typed as nothing",
   "reached_when": "a row carries at least one of the four figures and at least one of them is blank, or is typed below the bottom of the range its own control offers",
   "printed": "that row prints the words waiting on this board in all three computed cells and prints back only the figures that were typed on it; the run's three figures are withheld and the glance says how many rows it is waiting for"
  },
  {
   "state": "a dimension typed in the other unit",
   "reached_when": "a dimension's own selector reads ft, or reads in where the reader meant the other",
   "printed": "the figure is read in the unit the selector says, the row prints it in that unit, and the page never infers a unit from the size of a figure"
  },
  {
   "state": "a thickness typed as a fraction",
   "reached_when": "the thickness field holds a fraction or a mixed fraction rather than a decimal",
   "printed": "the thickness is read as the one number the three forms share, and the row says which form it was read in"
  },
  {
   "state": "a price a board foot not yet typed",
   "reached_when": "the rate field is blank",
   "printed": "a finished run's board feet are footed in full, listCost is null, and no cash figure prints anywhere on the page"
  },
  {
   "state": "a row carrying nothing at all",
   "reached_when": "none of the four figures on a row was read",
   "printed": "the row is dashed, the run's three figures are withheld while it stands, because the run is read at the count the reader asked for, and the page names how many such rows there are, in words"
  },
  {
   "state": "a run with nothing typed on any row",
   "reached_when": "no row carries any figure, which is the state the page ships in",
   "printed": "all three headline figures print the words not yet, the glance says nothing is typed, and the tally's four rows are dashed"
  }
 ],
 "outputs": [
  {
   "name": "boardCount",
   "type": "integer",
   "of": "how many board rows this run reads, 1 to 12. The count the control offers, read inside that range; with the count blank it is the number of board objects the state carries, up to twelve, and one if it carries none."
  },
  {
   "name": "typedBoardCount",
   "type": "integer",
   "of": "how many of those rows carry at least one figure that was read: a thickness, a width, a length or a count. A row carrying nothing is not one of them."
  },
  {
   "name": "completeBoardCount",
   "type": "integer",
   "of": "how many of the first boardCount rows carry all four: a thickness, a width, a length and a count. Only these rows are footed into the run, and the run is footed only when this equals boardCount."
  },
  {
   "name": "unfinishedBoardCount",
   "type": "integer",
   "of": "how many rows carry at least one of the four and not all four. While this is above nothing the run's figures are withheld."
  },
  {
   "name": "emptyBoardCount",
   "type": "integer",
   "of": "how many of the first boardCount rows carry none of the four. The run waits while any of them stands, because the headline foots the run the count asks for, and the page names them instead of guessing at them. A row beyond boardCount is not counted here and is not read at all."
  },
  {
   "name": "feetBoardCount",
   "type": "integer",
   "of": "how many rows carry at least one dimension whose own selector reads ft. The page reads it in feet because that is what the selector says; it never guesses a unit."
  },
  {
   "name": "fractionBoardCount",
   "type": "integer",
   "of": "how many rows had their thickness read as a fraction or as a mixed fraction rather than as a decimal. The page prints which form it read on the row itself."
  },
  {
   "name": "totalPieces",
   "type": "number or null",
   "of": "the piece counts of the footed rows, added. null while waiting is true."
  },
  {
   "name": "listBoardFeet",
   "type": "number or null",
   "of": "the board feet of the footed rows, added, unrounded. null while waiting is true."
  },
  {
   "name": "listCost",
   "type": "number or null",
   "of": "each footed row's unrounded board feet multiplied by the typed rate, added, unrounded. null while waiting is true and null while no rate is typed. The page prints it at the cent."
  },
  {
   "name": "rateTyped",
   "type": "boolean",
   "of": "whether a price a board foot was read. A blank rate and a rate typed as nothing are two different states: this is false only for the blank."
  },
  {
   "name": "waiting",
   "type": "boolean",
   "of": "true while fewer of the first boardCount rows are footed than boardCount asks for: completeBoardCount < boardCount. Every footed figure is null exactly then."
  },
  {
   "name": "board1BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 1: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board1BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 1: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board1Pieces",
   "type": "number",
   "of": "the piece count read on row 1. Zero where none was read."
  },
  {
   "name": "board1Cost",
   "type": "number",
   "of": "row 1's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board2BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 2: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board2BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 2: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board2Pieces",
   "type": "number",
   "of": "the piece count read on row 2. Zero where none was read."
  },
  {
   "name": "board2Cost",
   "type": "number",
   "of": "row 2's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board3BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 3: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board3BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 3: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board3Pieces",
   "type": "number",
   "of": "the piece count read on row 3. Zero where none was read."
  },
  {
   "name": "board3Cost",
   "type": "number",
   "of": "row 3's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board4BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 4: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board4BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 4: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board4Pieces",
   "type": "number",
   "of": "the piece count read on row 4. Zero where none was read."
  },
  {
   "name": "board4Cost",
   "type": "number",
   "of": "row 4's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board5BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 5: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board5BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 5: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board5Pieces",
   "type": "number",
   "of": "the piece count read on row 5. Zero where none was read."
  },
  {
   "name": "board5Cost",
   "type": "number",
   "of": "row 5's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board6BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 6: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board6BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 6: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board6Pieces",
   "type": "number",
   "of": "the piece count read on row 6. Zero where none was read."
  },
  {
   "name": "board6Cost",
   "type": "number",
   "of": "row 6's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board7BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 7: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board7BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 7: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board7Pieces",
   "type": "number",
   "of": "the piece count read on row 7. Zero where none was read."
  },
  {
   "name": "board7Cost",
   "type": "number",
   "of": "row 7's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board8BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 8: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board8BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 8: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board8Pieces",
   "type": "number",
   "of": "the piece count read on row 8. Zero where none was read."
  },
  {
   "name": "board8Cost",
   "type": "number",
   "of": "row 8's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board9BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 9: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board9BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 9: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board9Pieces",
   "type": "number",
   "of": "the piece count read on row 9. Zero where none was read."
  },
  {
   "name": "board9Cost",
   "type": "number",
   "of": "row 9's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board10BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 10: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board10BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 10: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board10Pieces",
   "type": "number",
   "of": "the piece count read on row 10. Zero where none was read."
  },
  {
   "name": "board10Cost",
   "type": "number",
   "of": "row 10's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board11BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 11: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board11BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 11: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board11Pieces",
   "type": "number",
   "of": "the piece count read on row 11. Zero where none was read."
  },
  {
   "name": "board11Cost",
   "type": "number",
   "of": "row 11's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  },
  {
   "name": "board12BoardFeetPerPiece",
   "type": "number",
   "of": "the board feet of ONE piece on row 12: its thickness, its width and its length in inches multiplied together and divided by 144, unrounded. Zero where that row is not footed."
  },
  {
   "name": "board12BoardFeet",
   "type": "number",
   "of": "the board feet of the whole of row 12: its thickness, its width and its length in inches multiplied together with the count on the row and divided by 144 once, unrounded, in that order and not as one piece multiplied afterwards by the count. Zero where that row is not footed."
  },
  {
   "name": "board12Pieces",
   "type": "number",
   "of": "the piece count read on row 12. Zero where none was read."
  },
  {
   "name": "board12Cost",
   "type": "number",
   "of": "row 12's unrounded board feet multiplied by the typed rate, unrounded. Zero where that row is not footed or where no rate is typed; the page prints it at the cent."
  }
 ],
 "worked_example": {
  "why": "three boards worked end to end - one with the length in feet, one with the length in inches, one with the width in feet and a thickness typed as a quarter fraction - because an agent needs one state worked through. Every figure below is this engine's own answer for the state above it.",
  "state": {
   "jobRef": "the kitchen job",
   "rate": 11,
   "boardCount": 3,
   "boards": [
    {
     "thickness": "1.25",
     "thicknessUnit": "in",
     "width": 5.5,
     "widthUnit": "in",
     "length": 8,
     "lengthUnit": "ft",
     "pieces": 6
    },
    {
     "thickness": "5/4",
     "thicknessUnit": "in",
     "width": 7.25,
     "widthUnit": "in",
     "length": 120,
     "lengthUnit": "in",
     "pieces": 2
    },
    {
     "thickness": "0.75",
     "thicknessUnit": "in",
     "width": 0.5,
     "widthUnit": "ft",
     "length": 8,
     "lengthUnit": "ft",
     "pieces": 4
    }
   ]
  },
  "outputs": {
   "boardCount": 3,
   "typedBoardCount": 3,
   "completeBoardCount": 3,
   "unfinishedBoardCount": 0,
   "emptyBoardCount": 0,
   "feetBoardCount": 2,
   "fractionBoardCount": 1,
   "totalPieces": 12,
   "listBoardFeet": 54.604166666666664,
   "listCost": 600.6458333333333,
   "rateTyped": true,
   "waiting": false,
   "board1BoardFeetPerPiece": 4.583333333333333,
   "board1BoardFeet": 27.5,
   "board1Pieces": 6,
   "board1Cost": 302.5,
   "board2BoardFeetPerPiece": 7.552083333333333,
   "board2BoardFeet": 15.104166666666666,
   "board2Pieces": 2,
   "board2Cost": 166.14583333333331,
   "board3BoardFeetPerPiece": 3,
   "board3BoardFeet": 12,
   "board3Pieces": 4,
   "board3Cost": 132
  },
  "read_it_back": "Row one: 1.25 x 5.5 x 96 / 144 is 4.5833333... board feet a piece, and the other form, 1.25 x 5.5 x 8 / 12, gives the same figure; x 6 pieces is 27.5 board feet, x $11.00 is $302.50 exactly. Row two: a thickness of 5/4 is read as 1.25, so 1.25 x 7.25 x 120 / 144 is 7.5520833... a piece, x 2 is 15.1041666... board feet, x $11.00 is 166.1458333..., printed $166.15. Row three: a width of 0.5 ft is 6 in, so 0.75 x 6 x 96 / 144 is exactly 3 a piece, x 4 is 12 board feet, x $11.00 is $132.00 exactly. The run is 12 pieces and 54.6041666... board feet, and the cash is the three unrounded products added: 600.6458333..., printed $600.65. Adding the three PRINTED figures $302.50, $166.15 and $132.00 gives $600.65 as well here, and on a longer run it need not."
 },
 "second_worked_example": {
  "why": "the four states this engine must not smooth over, one state each, plus the state the page ships in",
  "blank_dimension": {
   "state": {
    "rate": 11,
    "boardCount": 2,
    "boards": [
     {
      "thickness": "1.25",
      "thicknessUnit": "in",
      "width": 5.5,
      "widthUnit": "in",
      "length": 8,
      "lengthUnit": "ft",
      "pieces": 6
     },
     {
      "thickness": "0.75",
      "thicknessUnit": "in",
      "width": "",
      "widthUnit": "in",
      "length": "",
      "lengthUnit": "ft",
      "pieces": ""
     }
    ]
   },
   "outputs": {
    "boardCount": 2,
    "typedBoardCount": 2,
    "completeBoardCount": 1,
    "unfinishedBoardCount": 1,
    "emptyBoardCount": 0,
    "feetBoardCount": 1,
    "fractionBoardCount": 0,
    "totalPieces": null,
    "listBoardFeet": null,
    "listCost": null,
    "rateTyped": true,
    "waiting": true,
    "board1BoardFeetPerPiece": 4.583333333333333,
    "board1BoardFeet": 27.5,
    "board1Pieces": 6,
    "board1Cost": 302.5,
    "board2BoardFeetPerPiece": 0,
    "board2BoardFeet": 0,
    "board2Pieces": 0,
    "board2Cost": 0
   },
   "note": "The second row carries a thickness and nothing else, so the run is not finished: totalPieces, listBoardFeet and listCost are all null and the page prints the words not yet in their place, with the sentence that says so in the glance. The FIRST row is footed in itself and its own four figures are reported all the same, because that row is finished: a row's own figures are not withheld for another row's sake."
  },
  "the_other_unit": {
   "state": {
    "rate": 11,
    "boardCount": 1,
    "boards": [
     {
      "thickness": "1.25",
      "thicknessUnit": "in",
      "width": 5.5,
      "widthUnit": "in",
      "length": 8,
      "lengthUnit": "in",
      "pieces": 6
     }
    ]
   },
   "outputs": {
    "boardCount": 1,
    "typedBoardCount": 1,
    "completeBoardCount": 1,
    "unfinishedBoardCount": 0,
    "emptyBoardCount": 0,
    "feetBoardCount": 0,
    "fractionBoardCount": 0,
    "totalPieces": 6,
    "listBoardFeet": 2.2916666666666665,
    "listCost": 25.208333333333332,
    "rateTyped": true,
    "waiting": false,
    "board1BoardFeetPerPiece": 0.3819444444444444,
    "board1BoardFeet": 2.2916666666666665,
    "board1Pieces": 6,
    "board1Cost": 25.208333333333332
   },
   "note": "The same figures as the worked example's first row with the length selector on in rather than on ft: eight INCHES, not eight feet. 1.25 x 5.5 x 8 / 144 is 0.3819444... board feet a piece against 4.5833333... , a factor of twelve, and the page reads it as the selector says rather than guessing which the reader meant. This is the state the page exists to keep apart."
  },
  "a_fraction": {
   "state": {
    "rate": 11,
    "boardCount": 1,
    "boards": [
     {
      "thickness": "1 1/4",
      "thicknessUnit": "in",
      "width": 5.5,
      "widthUnit": "in",
      "length": 8,
      "lengthUnit": "ft",
      "pieces": 6
     }
    ]
   },
   "outputs": {
    "boardCount": 1,
    "typedBoardCount": 1,
    "completeBoardCount": 1,
    "unfinishedBoardCount": 0,
    "emptyBoardCount": 0,
    "feetBoardCount": 1,
    "fractionBoardCount": 1,
    "totalPieces": 6,
    "listBoardFeet": 27.5,
    "listCost": 302.5,
    "rateTyped": true,
    "waiting": false,
    "board1BoardFeetPerPiece": 4.583333333333333,
    "board1BoardFeet": 27.5,
    "board1Pieces": 6,
    "board1Cost": 302.5
   },
   "note": "A thickness typed as the mixed fraction 1 1/4 is read as 1.25, which is what the decimal and the quarter fraction 5/4 are also read as: every output here is the worked example's first row to the last decimal. fractionBoardCount is 1, and the row in the page's own table says which form was read."
  },
  "no_rate": {
   "state": {
    "rate": "",
    "boardCount": 1,
    "boards": [
     {
      "thickness": "1.25",
      "thicknessUnit": "in",
      "width": 5.5,
      "widthUnit": "in",
      "length": 8,
      "lengthUnit": "ft",
      "pieces": 6
     }
    ]
   },
   "outputs": {
    "boardCount": 1,
    "typedBoardCount": 1,
    "completeBoardCount": 1,
    "unfinishedBoardCount": 0,
    "emptyBoardCount": 0,
    "feetBoardCount": 1,
    "fractionBoardCount": 0,
    "totalPieces": 6,
    "listBoardFeet": 27.5,
    "listCost": null,
    "rateTyped": false,
    "waiting": false,
    "board1BoardFeetPerPiece": 4.583333333333333,
    "board1BoardFeet": 27.5,
    "board1Pieces": 6,
    "board1Cost": 0
   },
   "note": "No price a board foot. The board feet are footed in full - listBoardFeet and totalPieces are reported - and every cash figure is withheld: listCost is null and board1Cost is zero because no cost exists to report. The page prints no cost anywhere while this is so, in the headline, in the tally or in the working."
  }
 },
 "limits": [
  "This is measurement and multiplication on figures the reader typed and nothing else. It is not advice of any kind and it recommends nothing: not a species, not a grade, not a dryness, not a treatment, not a finish, not a brand, not a mill, not a supplier and not a quantity.",
  "Nothing here is structural. There is no span, no load, no spacing, no fastener and no allowable stress in it, and no statement that any dimension is adequate or safe for anything.",
  "No nominal-to-actual dimension rule is published. A board sold as two by four is not two inches by four, and what it actually measures varies by species, by dressing and by yard, so this engine asks for a figure and the unit that figure is in.",
  "No price a board foot is supplied, for any species, in any place, in any season. The rate is the reader's and the engine holds none of its own.",
  "No waste allowance, overage or cutting-loss figure is supplied. A count on a row is the count that was typed.",
  "A board foot is a unit of volume, not a specification. This engine measures and tallies; it specifies nothing.",
  "Nothing printed by the page or reported here is a quote, and it binds no yard and satisfies no one. It carries no tax of any kind, no delivery charge and no handling charge.",
  "Nothing leaves the reader's browser. The job reference is kept in that browser alone, under one key, and is sent nowhere; no figure is stored at all."
 ]
}
