docs/FS-Neg-fields-and-values.md
Linked repository file from this build.
# FS Negative Template Workbook field inventory
Source: `FS Negative Template Workbook.xlsm`
The workbook is the FNS-245 SNAP negative-action review form (OMB 0584-0034, edition 01-14). Two visible sheets: **FS Neg** and **FS Computation**. Creator in the file properties is Portillo, Pablo. State code **42** is hardcoded (Pennsylvania). VBA is present. FS Workbook is not a sheet in this file. Coupon-allotment and education/proration formulas were re-read from worksheet XML on September 9, 2026.
Comments are Excel notes, not threaded comments. 36 on FS Neg, 11 on FS Computation. Those notes are the valid-value lists for the coded fields.
Extracted with LibreOffice (`soffice --headless --convert-to ods`) plus the workbook XML.
---
# Sheet 1: FS Neg
Print area is `A1:AO159`. The live form is rows 1-75. Columns AW-BH hold dropdown lists. Buttons sit to the right of the form.
## Header and workflow controls
| Cell / object | What it is |
| ---------------------- | --------------------------------------------------------------------------------------------------- |
| AD1 | `FORM APPROVED OMB NO. 0584-0034` |
| B2-B4 | USDA / SNAP / Case and Procedural Case Action Review Schedule |
| Picture at B2 | MemoN logo |
| AT14:AT15 | Label: "Only click this button when schedule is complete" |
| **Edit Check** button | Near AQ14. Shape name `Edit Check FS Neg` |
| **Clerical Entered** | Near AK14. Shape `Cler_Ent` |
| **Supr Approval** | Near AK16. Shape `Supr_Appr` |
| **Return to Examiner** | Near AQ19. Macro `SNAP_Neg_Return` |
| AQ56 | Hyperlink: `Convert Mapper District Codes to QC` → `../../../DQC/Finding Memo/District Offices.pdf` |
| BN5 | Label: `Select from Dropdown for Narrative` |
| **BN6:BQ6** | Narrative dropdown. Named range `Narrative`. List = `BU6:BU11` |
| **BR6:BT6** | Second narrative dropdown. List = `BU6:BU10` |
**BN5 note** (Miller, Valerie):
> If you need to make this blank there maybe a debug. Just select END
**Narrative list (`BU6:BU11`):**
1. SAR Suspended Philly
2. SAR terminated NOT Philly
3. Rejection 047 EX FS Issued
4. Rejection 047 EX FS Denied
5. Rejection 042 EX FS Issued
6. Rejection 042 EX FS Denied
---
## I. Case Management Information (not transmitted)
Text fields. No comments. Month/day cells are format `@` (text). Year cells are General.
| Field | Entry cells | Notes |
| ------------------------------- | ------------------------------------------------- | --------------------------------------------- |
| A. Case Name | C8:Q10 (merged C8:Q10) | Free text |
| B. Telephone Number | V9:X9, Z9:AB9, AD9:AG9 | Three groups. Looks like area / prefix / line |
| C. Mailing Address | C12:Q13 | Free text |
| D. Actual Address / Directions | V12:AO13 | Free text |
| E. Date Assigned | C16:D16 (MO), F16:G16 (DAY), I16:L16 (YEAR) | |
| F. Date Completed / Disposed of | O16:P16 (MO), R16:S16 (DAY), U16:X16 (YEAR) | |
| G. Date Cleared | AA16:AB16 (MO), AD16:AE16 (DAY), AG16:AJ16 (YEAR) | |
| Reviewer | Q17:X17 | |
| Supervisor | AC17:AJ17 | |
---
## II. Identifying Information
| # | Field | Entry cells | Format / valid values |
| --- | ---------------------------- | -------------------------------------------------- | --------------------------------------- |
| 1 | Review Number | C20:H20 | Text. Unlocked |
| 2 | Case Number | L20:U20 | Text. Unlocked |
| 3 | State and Local Agency Codes | **X20** = `42` (fixed). **AA20:AC20** local agency | AA20 format `@` |
| 4 | Sample Month and Year | AF20:AG20 (month, `@`), AI20:AL20 (year) | |
| 5 | Stratum | C24:D24 | `@` |
| 6 | Notice Date | G24:H24 (MO), J24:K24 (DAY), M24:P24 (YEAR) | MO/DAY `@` |
| 7 | Action Date | S24:T24 (MO), V24:W24 (DAY), Y24:AB24 (YEAR) | MO/DAY `@` |
| 8 | Action Type | **AE24** | Dropdown `AW3:AW5` |
| 9 | Case Classification | **AJ24** | Dropdown `AX3:AX5`. Default value **1** |
**AA20 note:** Processing Area and 2 digit county
**AE24 note (Action Type):**
1. Denial of SNAP application
2. Termination of SNAP benefits
3. Suspension of SNAP benefits
**AJ24 note (Case Classification):**
1. Included in error rate calculation
2. Excluded from error rate calculation - processed by SSA worker
3. Excluded from error rate calculation, as designated by FNS (e.g. demo project, simplified FSP)
---
## III. Analysis of Review Activity
Comments sit on the field. Some comment cells are locked. The unlocked entry cell is usually next to the note.
### 10. Disposition of Review
| Field | Entry | Comment / valid values |
| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 10a Disposition | **F29** | 1 Review completed. 2 Not Subject to Review / Listed in Error (Chapter 13, Handbook 310; 10b required; 11-20 not required). 3 Incomplete / Review Not Processed (prior FNS approval). 4 Case deselected / correction for oversampling (no further codes) |
| 10b NSTR Reason | **J29** | 01 withdrawn application. 02 active IPV investigation. 03 IPV investigation scheduled in next 5 months. 04 pending IPV hearing. 05 certification-period closure, not recertified. 06 oversampling correction. 07 pending notice, not actually denied. 08 listed in error / admin correction. 09 disaster certification. 10 monthly report late then reinstated. 11 computer malfunction (needs FNS approval). 12 suspended after first month of multi-month suspension |
### 11. Finding
| Field | Entry | Comment / valid values |
| ---------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
| 11 Finding | **M29** | 1 Valid (all three components correct). 2 Invalid (one or more incorrect). If 12b = 2, case must be coded invalid |
### 12. Case Record Review
| Field | Entry | Comment / valid values |
| ------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 12a Recorded Reason for Action | **Q29:R29** (note on W29) | Same 01-33 / 99 / 00 list as denial reasons. See list below |
| 12b Accuracy of Recorded Reason | **AF29** (note on AG29) | 1 Accurate. Case record supports the reason. 2 Inaccurate. Record does not support the reason. 3 Insufficient information |
Dropdown on Q29:R29 is `AZ3:AZ46`: 01-33, then 99, 00. AZ has 31 twice (AZ33 and AZ34).
**W29 / 12a reason codes:**
01 institution not FNS-authorized. 02 outside project area or State. 03 ineligible striker. 04 ineligible noncitizen. 05 ineligible student. 06 ineligible boarder. 07 missed interview(s). 08 failed to provide verification. 09 refusal to cooperate. 10 refusal to supply SSN. 11 over gross income. 12 over net income. 13 exceeds resource standard. 14 transfer of resources. 15 work registration / job search. 16 voluntary quit. 17 failure to submit / complete report. 18 voluntary withdrawal after certification. 19 TANF termination / denial. 20 IPV. 21 program disqualification. 22 ABAWD time limit expired. 23 SNAP work requirements. 24 eligible for zero benefits. 25 failure to access EBT. 26 loss of contact. 27 deceased. 28 not eligible for separate household. 29 fleeing felon / parole / drug conviction. 30 reason not documented. 31 benefits in another SNAP HH same period. 32 benefits in another state same period. 33 tribal commodities. **99** Other. **00** Cannot be determined.
### 13. Notice Requirement
| Field | Entry | Comment / valid values |
| --------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| 13 Notice Requirement | **AL29** | 1 Notice required and sent. 2 Required and not sent. 3 No requirement, and did send. 4 No requirement, and did not send |
### 14. Household Notice
| Field | Entry | Comment / valid values |
| ----------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| 14a Required Language | **J33** (note on H33) | 1 All required language / information included. 2 Not included. 3 No notice sent |
| 14b Specific, Clear, Understandable | **U33:V33** (note on T33) | 1 Yes, reason is specific, clear, understandable. 2 No on any of those three. Section V explanation required. 3 No notice sent |
| 14c Reason to HH | **AA33** | Same 01-33 list as 12a. Extra **00** = No notice sent |
| 14d Accuracy of Reason to HH | **AF33** (note on AL33) | 11 Accurate, matches recorded reason. 12 Accurate, does not match. 21 Inaccurate, matches. 22 Inaccurate, does not match. 99 No notice sent |
J33 and J41 share a "Validity" dropdown (`BB3:BB6` = 1-4). The H33 note is the 1-3 language list above. Treat the note as the field meaning.
### 15. Procedural Requirements
All four notes use the same 1-3 scale.
| Field | Entry | Comment / valid values |
| ------------------------------ | ----------------------- | ------------------------------------------------------------------------------------------ |
| 15a Notice of Missed Interview | **J37** | 1 Required and completed correctly. 2 Required and not completed correctly. 3 Not required |
| 15b Request for Contact | **R37** | Same 1 / 2 / 3 |
| 15c Request for Verification | **V37** (note on AA37) | Same 1 / 2 / 3 |
| 15d Periodic Report | **AF37** (note on AI37) | 1 Required and sent. 2 Required and not sent. 3 Not required |
### 16. Timeliness of Action
| Field | Entry | Comment / valid values |
| ---------------------------- | ----------------------- | ---------------------------------------------- |
| 16a Timeliness of Action | **J41** (note on H41) | 1 Action taken timely. 2 Too early. 3 Late |
| 16b Days Action Early / Late | **U41** (note on S41) | Number of days. **99** = 99+ days |
| 16c Timeliness of Notice | **AA41** | 1 Notice sent timely. 2 Late. 3 No notice sent |
| 16d Days Notice Late | **AF41** (note on AK41) | Days late. **99** = 99+ days |
---
## IV. Description of Variances
### 17. Element Code (three slots)
| Slot | Entry | Validation |
| ---- | ------------------------- | ------------------------------------------------------- |
| 1 | **E47:G47** (note on E47) | Error title "Element". Dropdown type is `none` (broken) |
| 2 | **K47:M47** | List `BC4:BC63` |
| 3 | **Q47:S47** | List `BC4:BC62` |
**E47 note (element codes):**
111 Student Status. 130 Citizenship and Non-Citizen Status. 140 Residency. 150 Household Composition. 151 Recipient Disqualification. 160 Employment & Training Programs. 161 Time-limited participation. 162 Work Registration Requirements. 163 Voluntary Quit / Reduced Work Effort. 164 Workfare and Comparable Workfare. 165 Employment Status / Job Availability. 166 Acceptance of Employment. 170 Social Security Number. 211 Bank Accounts or Cash on Hand. 212 Nonrecurring Lump-sum Payment. 213 Other Liquid Assets. 221 Real Property. 222 Vehicles. 224 Other Non-Liquid Resources. 225 Combined Resources. 311 Wages and Salaries. 312 Self-Employment. 313 Other Earned Income. 321 Earned Income Deductions. 323 Dependent Care Deduction. 331 RSDI. 332 Veterans Benefits. 333 SSI and/or State SSI Supplement. 334 Unemployment Compensation. 335 Worker's Compensation. 336 Other Government Benefits. 342 Contributions. 343 Deemed Income. 344 TANF, PA, or GA. 345 Educational Grants / Scholarships / Loans. 346 Other Unearned Income. 350 Child Support Payments Received. 361 Standard Deduction. 363 Shelter Deduction. 364 Standard Utility Allowance. 365 Medical Deductions. 366 Child Support Payment Deduction. 371 Combined Gross Income. 372 Combined Net Income. 412 Budgeting System. 413 Application. 414 Joint TANF/FS Processing and Reporting. 415 Verification. 416 Action Type. 511 Other. 520 Arithmetic Computation. 530 Transitional Benefits. 540 Notices.
### 18. Nature Code (three slots)
| Slot | Entry | Restricted list |
| ---- | ------------------------- | --------------- |
| 1 | **W47:Y47** (note on W47) | `BG449:BG458` |
| 2 | **AC47:AE47** | `BG72:BG79` |
| 3 | **AI47:AK47** | `BG221:BG235` |
Error on bad value: "Please enter a valid Nature code. Refer to comment for description of codes."
**W47 note (notice / other natures):**
049 Failed to send notice of action. 089 Notice did not include date of intended action. 090 Notice did not include rights of household. 091 Notice not clearly understandable. 092 Notice reason does not match reason for action. 093 Notice was not complete. 094 Notice was sent to wrong address. 096 Policy incorrectly applied. 097 Resource counted as income. 098 Transcription or computation errors. 099 Other (no specific nature listed, nature is obvious from agency/client code, or none of the listed natures apply).
Off-sheet columns **BF:BH** hold the full Element + Nature + explanation catalog (hundreds of rows). That is the lookup table, not a form field.
---
## Reserved Coding
| # | Field | Entry | Comment / valid values |
| --- | ------------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 19 | Collateral / Household Contact | **E52:F52** (and nearby unlocked G52:J52) | 01 No collateral or HH contact. 02 Phone to collateral. 03 Phone to household. 04 Letter to collateral (document on Section V, include copy). 05 Letter to household (same). 06 Face-to-face to collateral. 07 Face-to-face to household |
| 20 | Action Initiated By | **N52:O52** | 01 HH reported. 02 Automated source. 03 Other source. 04 Application. 05 Interim report completed. 06 Interim report not submitted. 07 Failure to provide info from application. 08 Failure to provide info from interim report. 09 Recertification submitted. 10 Failure to provide info from recertification. 11 Other |
| | Reserved for Future Use | Q52:AD52, AO52 | Unlocked. No comments |
---
## Optional for State Use (PA QC)
All on row 56. Each has a note.
| Cell | Field | Valid values |
| -------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **C56** | Processing District 1st digit | Digit |
| **D56** | Processing District 2nd digit | Digit |
| **E56** | Home County - Area | |
| **F56** | Home County - 1st digit of county | Digit |
| **G56** | Home County - 2nd digit of county | Digit |
| **H56** | Home County - 1st digit of district | Digit |
| **I56** | Home County - 2nd digit of district | Digit |
| **J56** | FS 75? | 1 Yes. 2 No. 3 N/A |
| **K56** | Rejection Reasons for ESAP | 1 Incomplete Application. 2 Failure to Provide Verification. 3 Income. 4 Fleeing Felon. 5 Drug Felony. 6 Resources. 7 Client Request. 8 Alien Status. 9 ESAP Ineligible |
| **L56** | Worker Experience | 1 IMCW less than one year. 2 1 to 5 years. 3 Greater than 5 years. 4 Cannot be determined. 5 Automated Action |
| S56:AN56 | Extra unlocked state cells | No comments |
---
## V. Explanation of Review Findings
| Area | Cells | Notes |
| -------------- | -------------------- | --------------------------------------------------------------------- |
| Section V body | C60:AO70 | Unlocked text block. Drawing text boxes overlay rows 60-69 and 75-135 |
| Footer | B71 | `FORM FNS-245 (01-14) Previous editions obsolete` |
| Continued page | C74 label, C75:AO75+ | `EXPLANATION OF REVIEW FINDINGS CONTINUED` |
---
# Sheet 2: FS Computation
FFY 2026 SNAP QC computation sheet. Print area `A1:H70`. Columns B-H are budget columns: Eligibility (1), Final SAQC (2), Comp I (3), Comp II (4), then three more (5).
A second block starts at column AF for **Self-Employment**.
| Button | Where |
| ------------------------------ | ------- |
| Final Results | C5 area |
| Self Employment | F5 area |
| Clear Computation Sheet | G68 |
| Move Back to Computation Sheet | AF20 |
### Header inputs
| Field | Cell | Format / note |
| ------------ | ----- | ------------------------------------------------------------ |
| Case Name | B1:D1 | Copies to AG1 |
| Review No | F1 | Copies to AJ1 |
| Sample Month | H1 | `mmm-yy`. Drives FY table switch (`H1>39721` and `H1>45931`) |
| Element | G2:H2 | Labels only |
### Main budget inputs (columns B-H)
Empty money cells use `$#,##0`. Cyan rows are formulas.
| Line | Label | Input or formula |
| ---- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| | Wages, salaries, work-study less expenses | B8:H10 (3 member/source rows). A8:A10 member/source labels |
| | Household Size | **B11:H11** |
| 1 | Add Self-Emp and Total Earned Income | Formula. Pulls farm SE from AG19 if present |
| 2 | Monthly Income / Edu. Grant | B13:H13 |
| 3 | Tuition, Fees, Expenses | B14:H14 |
| 4 | Subtract 3 from 2 | Formula `MAX(line2−line3, 0)` |
| 5 | Add 1 and 4 | Formula `line1 + line4` |
| | Unearned Income | B18:H22 (5 rows) |
| 6 | Total Unearned Income | Formula |
| 7 | Add 5 and 6 (gross) | Formula |
| 8 | Enter SE loss | Formula from farm SE, also overridable |
| 9 | Subtract 8 from 7 | Formula |
| 10 | Enter Gross Limit | VLOOKUP by HH size and sample month |
| 11 | Multiply line 1 by 20% | Formula. Uses line 1 only. Zero if over gross |
| 12 | Subtract 11 from 9 | Formula |
| 13 | Standard Deduction | VLOOKUP |
| 14 | Subtract 13 from 12 | Formula |
| 15 | Medical Deduction | **B34:H34** |
| 16 | Subtract 15 from 14 | Formula |
| 17 | Dependent Care Costs | **B36:H36** |
| 18 | Subtract 17 from 16 | Formula |
| 19 | Child Support Deduction | **B38:H38** |
| 20 | Subtract 19 from 18 | Formula |
| 21 | Divide 20 by 2 | Formula (shelter test) |
| | Rent or Mortgage | **B42:H42** |
| | Taxes and Insurance | **B43:H43** |
| | Select SUA | **B44:H44** dropdown |
| | Amount of SUA | Formula from SUA table |
| | Installation of Utilities | **B46:H46** |
| | Other shelter | **B47:H47** |
| 22 | Total Shelter Costs | Formula |
| 23 | Excess Shelter Deduction | Formula |
| 24 | Excess Shelter Allowed | Formula. Cap in **T89** = **744** |
| | S/M Indicator (Y=1, N=blank) | **B51:H51** |
| | Homeless Ded. (Y=1, N=blank) | **B52:H52**. Formula subtracts **199** when = 1 |
| 26 | Amount from line 20 | Formula |
| 28 | Net SNAP Income | Formula |
| 29 | Net Income Limit | VLOOKUP |
| | Thrifty Food Plan | VLOOKUP |
| 31 | Multiply 28 by 30% | Formula |
| 32 | Coupon Allotment | Ordinary SNAP allotment. A leftover `INDIRECT("'FS Workbook'!L1510")="YES"` branch reads the local PA Cap lookup. FS Workbook is not in this template. |
| | Cat. Elig? (Y=1, N=blank) | **B61:H61** |
| | The amount of error is | **B62** input. C62:H62 formulas vs column B |
| | This error is an | Formulas: Ineligible / No error / over / under |
| | Enter DAY of Application | **B66:H66**. Day only, for proration |
| | Prorated Amount | Formula |
**SUA dropdown (`AA6:AA10`):** No Utilities. Heating. Non Heating. Limited. Telephone.
**Proration note (A69:A70):** Enter day only. Example: May 6, 2025 → `6`. Leave blank if not prorated.
Column B formula: `IF(B66>0,IF(J58<=10,0,ROUNDDOWN(((30-B66)+1)/30*J58,0)),"")`.
**T89 note in sheet:** "maximum excess shelter deduction for households without an elderly or disabled m[ember]". Value 744. Yellow warning: "DON'T FORGET TO UPDATE".
### Self-employment block (AF)
Farm: A total monthly gross, B monthly farm costs, C net gain, D net loss. Non-farm: E total non-farm gross, G total SE income, H allowable non-farm expenses, I net before taxes, J subtract farm loss from I. Results feed line 1 / line 8 on the main sheet.
### Computation comments (staff notes, not code lists)
| Cell | Note |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| T39, T62 | 130% of FPIG |
| V39, V62 | 100% FPIG |
| AB39, AB62, AB108 | 160% FPIG |
| AD39, AD62, AD108 | 200% FPIG |
| T96 | Leftover PA Cap lookup. Used only if the dead FS Workbook INDIRECT equals YES. If U92 changes, the note says to update this formula. |
### Limit tables (not entry fields)
Right of the form: Gross (blue), Net (green), Standard Deduction (orange), Thrifty Food Plan (magenta), 160% / 200% FPIG. Blocks for FFY 2025, FFY 2026, plus older FFY 2014 / 2008 leftovers. A leftover PA Cap block at T91:V94 holds income 965/985, rent split 196, and allotments 126/166 and 120/160. That block is not a SNAP Negative review input.
Homeless deduction in formulas is **199**. Maintainer notes on K25 / K26 say to change shelter and homeless amounts in those formulas when policy changes.
Sheet date stamp: **Revised: October 2025**.
---
# Other workbook facts
- Named ranges `COLUMNS`, `list111`, `list130` are `#REF!`.
- Data validation on F29 / J29 / M29 and on E47 is `type=none`. Those dropdowns do not work. The notes still list the codes.
- Validation on AF29 only allows 1-2, but the AG29 note also lists 3 (insufficient information).
- Computation allotment formulas still contain a leftover `INDIRECT` to `'FS Workbook'`.
That sheet is SNAP Positive. It is not part of this template. Do not treat it as a
Negative CAP requirement.
- Full nature-code catalog is on FS Neg `BF:BH`, starting at row 2.
## Application lookup resource
The complete current FS Neg BF:BH element/nature catalog is retained in
[`nature-catalog.json`](../src/programs/snap-negative/nature-catalog.json), extracted
read-only from the same workbook worksheet XML. Nature validity is element-specific;
the short W47 note above is not the complete valid-value list. The current field
inventory supersedes the obsolete VBA transmission writer as confirmed September 8, 2026.