Weights for landing reports and fish ticket may have fractions of pounds, but IFQ reports only allow weights that are whole pounds. However, it is necessary for the totals reported on Fish Tickets to match total IFQ debits. This page documents the mechanism mechanisms that eLandings uses to round fractional pounds and maintain matching total weights.
Rounding calculations become very complex in situations with stacked permits and distribution of catch across multiple stat areas. The eLandings system applies a number of business rules and constraints to ensure that pounds are not created or lost in the rounding process and that rounding introduces minimal statistical bias. However, due to the complexity of the underlying data (landing reports with stacked permits and stat area worksheets), multiple calculations with effects on rounding (allocation among multiple CFEC permits, distribution across stat areas, and allocation among multiple IFQ reports), it isn't always possible to predict the exact effect of rounding. It is possible to dissect particular examples and understand rounding in retrospect, and that is the purpose of this page.
Programmer documentation of rounding explains the software's internal mechanisms. This page explains rounding in customer terms.
A simple example with 1 permit and catch evenly distributed over 4 stat areas (even number of sold catch)
When the amount of sold pounds is an even number, the catch is applied evenly among stat areas (For eLandings staff, we have a /wiki/spaces/ft/pages/4390932, and the result can be viewed in eLandingsTest when logged in as AMACKEREL.)
Permits | Stat Areas | Pounds to Distribute |
---|---|---|
1 | 4 | 4 |
In this case effort was evenly distributed among four stat areas, and the catch is evenly distributed, with each stat area getting 1 pound. Each stat area can be expected to get 1 pound when generating IFQ reports.
Stat Area | Percent | Distributed Weight | Rounded Weight | Adjustment | How Was a Line Chosen for Adjustment? | IFQ Weight |
---|---|---|---|---|---|---|
575731 | 25 | 1 | 1 | 0 |
| 1 |
575732 | 25 | 1 | 1 | 0 |
| 1 |
575801 | 25 | 1 | 1 | 0 |
| 1 |
585801 | 25 | 1 | 1 | 0 |
| 1 |
A simple example with 1 permit and catch evenly distributed over 4 stat areas (odd number of sold catch)
Consider a report with 1 permit and catch of one species distributed over 4 statistical areas. (For eLandings staff, we have a /wiki/spaces/ft/pages/4391021, Example 1, and the result can be viewed in eLandingsTest when logged in as AMACKEREL.)
...
In this case the effort was evenly distributed among the four stat areas, so the catch is evenly distributed, with each stat area getting 25,001.75 pounds of catch, and 26.25 pounds of deadloss. When generating IFQ reports, the pounds are rounded to whole numbers, so each stat area gets 25,002 pounds of catch, and 26 pounds of deadloss; but, adjustments are required to generate the correct total IFQ debit. As above, in cases where the choice appears arbitrary, eLandings will make the adjustments to the line with the lowest numbered stat area. Adjustments can be positive or negative, and in this case, the catch adjustment is -1 pound, while the deadloss adjustment is +1 pound. Example 2 shows this adjustment. (In contrast, Example 5 shows how one more sold pound is adjusted to the lowest stat area and one less deadloss pound is adjusted to the lowest stat area and Example 6 shows how one less pound is adjusted to both sold pounds and deadloss pounds.)
Stat Area | Percent | Catch Distributed Weight | Rounded Weight | Catch Adjustment | How Was a Line Chosen for Adjustment? | Catch IFQ Weight | Deadloss Distributed Weight | Rounded Weight | Deadloss Adjustment | Deadloss IFQ Weight |
---|---|---|---|---|---|---|---|---|---|---|
575731 | 25 | 25,001.75 | 25,002 | -1 | Values are equal, and this line has the lowest stat area | 25,001 | 26.25 | 26 | +1 | 27 |
575732 | 25 | 25,001.75 | 25,002 | 0 |
| 25,002 | 26.25 | 26 | 0 | 26 |
575801 | 25 | 25,001.75 | 25,002 | 0 |
| 25,002 | 26.25 | 26 | 0 | 26 |
585801 | 25 | 25,001.75 | 25,002 | 0 |
| 25,002 | 26.25 | 26 | 0 | 26 |
...
In this case the effort was unevenly distributed among the four stat areas, so the catch is unevenly distributed. When generating IFQ reports, the pounds are rounded to whole numbers, but those whole numbers don't add up to the total of 1001, so an adjustment is required to generate the correct total IFQ debit. In this case eLandings will make the adjustments to the line with the largest catch value. Adjustments can be positive or negative, and in this case, a catch adjustment of +1 pound is applied to the stat area with the largest catch value. Example 3 shows this adjustment.
Stat Area | Percent | Catch Distributed Weight | Rounded Weight | Adjustment | How Was a Line Chosen for Adjustment? | Catch IFQ Weight |
---|---|---|---|---|---|---|
445931 | 40 | 400.4 | 400 | +1 | This line has the highest catch value | 401 |
445900 | 30 | 300.3 | 300 | 0 |
| 300 |
445830 | 30 | 300.3 | 300 | 0 |
| 300 |
Multiple IFQ permits
When there are multiple IFQ permits with catch that has an even number (such as 100 lbs), the catch is first allocated by permits (such as 50% - 50%). For sold weight, the extra pound goes to the IFQ permit with the larger permit number (even though the catch is an even number). For deadloss, the extra pound goes to the IFQ permit with the smaller permit number (even though the catch is an even number). Then the catch is split by stat area (75-25). For deadloss, and regardless of stat area, the extra pound goes to the IFQ permit with the smaller permit number. For sold weight, and regardless of stat area, the extra pound goes to the IFQ permit with the larger permit number.
...
Adjustments can happen in multiple discrete steps
Rounding is a stepwise process, and to understand the results it is sometimes necessary to understand each step of the process. This example illustrates the steps involved with multiple IFQ permits (without maxout pounds), multiple stat areas, and multiple line items. (For eLandings staff, we have a /wiki/spaces/ft/pages/4390937, and the result can be viewed in eLandingsTest when logged in as AMACKEREL.)
Permits | Stat Areas | Sold Pounds | Deadloss Pounds |
---|---|---|---|
2 | 2 | 100 | 100 |
When IFQ reports are generated, the stat area worksheet causes sold catch and deadloss to be distributed over two stat areas, with 75 pounds to stat area 575731 and 25 pounds to stat area 575732. The sold pounds and deadloss pounds are then evenly distributed among the two IFQ permits, rounding down because 75 and 25 are not evenly divisible by two, giving IFQ report items with 37 and 12 pounds respectively.
Next, whole-number amounts from fish ticket summaries are compared with the corresponding amounts on the IFQ reports (75 compared with 37+37, and 25 compared with 12+12, in both sold and deadloss dispositions), and one pound adjustments are applied to IFQ reports until they match Fish Ticket totals. Adjustments are applied to IFQ report items with maxout pounds first; within those with maxout pounds the smallest first; within those by IFQ Permit: next IFQ permit items with area/fishery; within those by area/fishery; within those by IFQ permit: then IFQ permit items with neither max out pounds or area/fishery by IFQ permit. In this case no IFQ report items have maxout or area/fishery, so the smallest (990051) IFQ permit gets the adjustment pounds in every case.
Finally, IFQ reports are "leveled", and in this case, since one report got four positive rounding-related adjustments, while the other report got none, leveling requires that 2 pounds be moved from 990051's report to 990052's report. Leveling adjustments are made in 1 pound increments; there are two adjustments of 1 pound each from the sold items on 990051's report to the corresponding sold items on 990052's report. The end result of the leveling is that 990051's report retains both rounding adjustments on its deadloss items, while 990052's report effectively acquires both rounding adjustments on its sold items.
IFQ Permit | Permit Allocation | Stat Area | Stat Area Percent | Disposition | Catch Distributed Weight | Rounded Weight | Fish Ticket Match Adjustment | How Was a Line Chosen for Adjustment? | Permit Leveling Adjustment | How Was a Line Chosen for Adjustment? | Catch IFQ Weight |
---|---|---|---|---|---|---|---|---|---|---|---|
990051 | 50% | 575731 | 75 | Sold | 37.5 | 37 | +1 | These lines have the lowest permit number (other considerations being equal) | -1 | 2 pounds need to be moved to level the permits, sold dispositions sort lower than deadloss, and adjustments are applied sequentially to items 1 pound at a time until leveling objectives are achieved | 37 |
" | " | 575731 | 75 | Deadloss | 37.5 | 37 | +1 | " |
|
| 38 |
" | " | 575732 | 25 | Sold | 12.5 | 12 | +1 | " | -1 | " | 12 |
" | " | 575732 | 25 | Deadloss | 12.5 | 12 | +1 | " |
|
| 13 |
990052 | 50% | 575731 | 75 | Sold | 37.5 | 37 |
| +1 | " | 38 | |
" | " | 575731 | 75 | Deadloss | 37.5 | 37 |
|
|
| 37 | |
" | " | 575732 | 25 | Sold | 12.5 | 12 |
| +1 |
| 13 | |
" | " | 575732 | 25 | Deadloss | 12.5 | 12 |
|
|
| " | 12 |
Net result can be difficult to predict
This example illustrates an unexpected result with multiple IFQ permits (without maxout pounds), multiple stat areas, and multiple line items. (For eLandings staff, we have a /wiki/spaces/ft/pages/4390938, and the result can be viewed in eLandingsTest when logged in as AMACKEREL.)
Permits | Stat Areas | Sold Pounds | Deadloss Pounds |
---|---|---|---|
2 | 2 | 101 | 101 |
When IFQ reports are generated, the stat area worksheet causes sold catch and deadloss to be distributed over two stat areas, with 76 pounds to stat area 575731 and 25 pounds to stat area 575732. (The stat area with the larger percent gets the extra pound.) The sold pounds and deadloss pounds are then evenly distributed among the two IFQ permits. Stat area 575731 has 76 pounds, evenly divisible by 2 yielding 38 pounds. Stat area 575732 has 25 pounds which rounds down to 12 pounds.
Next, whole number amounts from fish ticket summaries are compared with the corresponding amounts on the IFQ reports (76 compared with 38+38, and 25 compared with 12+12, and this applies to both sold and deadloss dispositions), and one pound adjustments are applied to IFQ reports until they match Fish Ticket totals. Adjustments are applied to IFQ report items with maxout pounds first; within those with maxout pounds the smallest first; within those by IFQ Permit: next IFQ permit items with area/fishery; within those by area/fishery; within those by IFQ permit: then IFQ permit items with neither max out pounds or area/fishery by IFQ permit. In this case no IFQ report items have maxout or area/fishery, so the item with the smallest (990051) IFQ permit gets the one pound adjustment on both sold and deadloss items.
Finally, IFQ reports are "leveled", and in this case, since one report got two positive rounding-related adjustments (adjustments for stat area 575732 on both sold and deadloss), while the other report got none... one adjustment of 1 pound from the stat area 575731 (the stat area with the largest percent) sold item on 990051's report to the stat area 575731 sold item on 990052's report "levels" the reports while retaining the match between fish ticket pounds and IFQ pounds. The end result of the leveling is that 990051's report loses one pound from a stat area 575731 sold item, while 990052's report acquires one pound on its stat area 575731 sold item.
IFQ Permit | Permit Allocation | Stat Area | Stat Area Percent | Disposition | Catch Distributed Weight | Rounded Weight | Fish Ticket Match Adjustment | How Was a Line Chosen for Adjustment? | Permit Leveling Adjustment | How Was a Line Chosen for Adjustment? | Catch IFQ Weight |
---|---|---|---|---|---|---|---|---|---|---|---|
990051 | 50% | 575731 | 75 | Sold | 38 | 38 | -1 | 1 pound need to be moved to level the permits, stat area 575731 has the largest percent, sold dispositions sort lower than deadloss, and adjustments are applied sequentially to items 1 pound at a time until leveling objectives are achieved | 37 | ||
" | " | 575731 | 75 | Deadloss | 38 | 38 |
|
| 38 | ||
" | " | 575732 | 25 | Sold | 12.5 | 12 | +1 | These lines have the lowest permit number (other considerations being equal) | 13 | ||
" | " | 575732 | 25 | Deadloss | 12.5 | 12 | +1 | " |
|
| 13 |
990052 | 50% | 575731 | 75 | Sold | 38 | 38 |
| +1 | " | 39 | |
" | " | 575731 | 75 | Deadloss | 38 | 38 |
|
|
| 38 | |
" | " | 575732 | 25 | Sold | 12.5 | 12 |
|
| 12 | ||
" | " | 575732 | 25 | Deadloss | 12.5 | 12 |
|
|
| 12 |