Gravity Forms template

FAFSA SAI & Pell Grant calculator template

The 2027–28 Student Aid Index and Pell Grant for dependent and independent students, live, from the federal formula.

Try the live FAFSA SAI & Pell Grant calculator first
Template $19
  • Import-ready Gravity Forms JSON
  • One-page install guide
  • The plugins it needs, with links
Buy the template

What you'll need

Check these before you buy so there are no surprises. Links may be affiliate links.

  • Required Gravity Forms (any license) Calculation fields and conditional logic are in core; the tables need GP Advanced Calculations.
  • Required GP Advanced Calculations (Gravity Wiz) Exponents, functions and date math in calculation fields. The formulas in this template use its syntax. Part of Gravity Perks; needs the Spellbook plugin active as well.

Free build guide: FAFSA SAI & Pell Grant calculator for WordPress

This guide rebuilds the FAFSA SAI & Pell Grant calculator from this site in Gravity Forms: 52 inputs, 7 live results and no submit button. Expect about 339 minutes by hand. The template above is the same form as an import file, and the bundle adds a PDF version of this guide with a screenshot of every setting, plus the stylesheet.

Behind the results sit 46 working fields: calculation fields set to Visibility Hidden, each holding one step of the calculation. Visitors never see them, but they still calculate, which conditional logic would not allow (Gravity Forms counts a field hidden by conditional logic as 0).

You will end up with:

  • Student Aid Index (SAI)
  • Estimated Pell Grant
  • Parents' contribution
  • Student contribution from income
  • Student contribution from assets
  • Student available income
  • Contribution from assets

What you need

  • Gravity Forms (any license) — Calculation fields and conditional logic are in core; the tables need GP Advanced Calculations.
  • GP Advanced Calculations (Gravity Wiz) — Exponents, functions and date math in calculation fields. The formulas in this template use its syntax. Part of Gravity Perks; needs the Spellbook plugin active as well.

The formulas below use GP Advanced Calculations syntax: exponents, functions or date math that core calculation fields cannot do. Install and activate it, with its Spellbook parent plugin, before you start; without it every result shows 0.

1. Create the form

  1. Go to Forms → New Form and name it FAFSA SAI & Pell Grant.
  2. In Form Settings → Form Layout, set the CSS Class Name to fo-live-only. Step 3 uses it to hide the submit button.
  3. Leave the form open in the editor; the fields come next.

2. Add the fields, in this order

Field IDs are assigned as you add fields. If yours come out differently, change the {Label:ID} references in the formulas to match your IDs. Settings not mentioned stay at their defaults.

1. Student is · Radio Buttons · ID 1
Description “Independent if born before January 1, 2004, married, in grad school, a veteran or on active duty, supporting children, or another FAFSA exception. Most undergraduates are dependent.”; Custom CSS Class (Appearance tab) fo-segmented.

Choices (tick show values and enter each value):

  • Dependent — value 1 (selected by default)
  • Independent — value 0

2. Family lives in · Drop Down · ID 2
Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed).

Choices (tick show values and enter each value):

  • Any other state or DC — value 1 (selected by default)
  • Alaska — value 2
  • Hawaii — value 3

3. Family size · Number · ID 3
Number Format 9,999.99; Default Value 4; Description “Dependent: the student, parents and siblings they support. Independent: the student, spouse and children.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed).

4. Parents · Section · ID 50
Description “2025 tax-year figures, both parents combined.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

5. Parents are · Radio Buttons · ID 4
Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

Choices (tick show values and enter each value):

  • Married or living together — value 1 (selected by default)
  • Single, divorced or widowed — value 0

6. Parents' tax filing status · Drop Down · ID 5
Description “If married parents filed separate returns, pick the first parent’s status here.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

Choices (tick show values and enter each value):

  • Married filing jointly — value 1 (selected by default)
  • Single — value 2
  • Head of household — value 3
  • Married filing separately — value 4
  • Qualifying surviving spouse — value 5
  • Did not file a 2025 tax return — value 0

7. Other parent's tax filing status · Drop Down · ID 31
Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents are is Married or living together and Parents' tax filing status is not Married filing jointly..

Choices (tick show values and enter each value):

  • Married filing separately — value 4 (selected by default)
  • Single — value 2
  • Head of household — value 3
  • Qualifying surviving spouse — value 5
  • Did not file a 2025 tax return — value 0

8. Received the Earned Income Tax Credit · Radio Buttons · ID 6
Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents are is Single, divorced or widowed..

Choices (tick show values and enter each value):

  • No — value 0 (selected by default)
  • Yes — value 1

9. Parents' adjusted gross income (AGI) · Number · ID 7
Number Format Currency; Default Value 85000; Description “Form 1040, line 11.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

10. Parent income from work · Number · ID 8
Number Format Currency; Default Value 60000; Description “Wages and net self-employment income.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

11. Other parent income from work · Number · ID 9
Number Format Currency; Default Value 25000; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents are is Married or living together..

12. Parents' federal income tax paid · Number · ID 10
Number Format Currency; Default Value 4800; Description “Form 1040, line 22 minus Schedule 2, line 2.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

13. Parents' other income items · Radio Buttons · ID 33
Description “Untaxed income (IRA deductions, tax-exempt interest, untaxed IRA and pension distributions, foreign income exclusion) and offsets (taxable grants, education credits, work-study). Most families have none.”; Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

Choices (tick show values and enter each value):

  • None — value 0 (selected by default)
  • Enter them — value 1

14. Parents' deductible IRA, SEP, SIMPLE and Keogh payments · Number · ID 34
Number Format Currency; Default Value 0; Description “Schedule 1, lines 16 and 20.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

15. Parents' tax-exempt interest · Number · ID 35
Number Format Currency; Default Value 0; Description “Form 1040, line 2a.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

16. Parents' untaxed IRA distributions · Number · ID 36
Number Format Currency; Default Value 0; Description “Form 1040, line 4a minus line 4b.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

17. Parents' IRA rollovers · Number · ID 37
Number Format Currency; Default Value 0; Description “The part of those distributions that was rolled over. If married filers each have one, count each person’s rollover only up to their own distributions.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

18. Parents' untaxed pensions · Number · ID 38
Number Format Currency; Default Value 0; Description “Form 1040, line 5a minus line 5b.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

19. Parents' pension rollovers · Number · ID 39
Number Format Currency; Default Value 0; Description “Same rule as IRA rollovers.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

20. Parents' foreign earned income exclusion · Number · ID 40
Number Format Currency; Default Value 0; Description “Form 2555. Also counts toward the Pell Grant income limits.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

21. Parents' taxable college grants and scholarships · Number · ID 41
Number Format Currency; Default Value 0; Description “Grant, scholarship and AmeriCorps amounts reported as income.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

22. Parents' education tax credits · Number · ID 42
Number Format Currency; Default Value 0; Description “American Opportunity and Lifetime Learning credits, Schedule 3, line 3.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

23. Parents' federal work-study earnings · Number · ID 43
Number Format Currency; Default Value 0; Conditional Logic (Advanced tab): Show this field if Student is is Dependent and Parents' other income items is Enter them..

24. Student · Section · ID 51
Description “2025 tax-year figures. An independent student who is married includes the spouse.”.

25. Student is · Radio Buttons · ID 17
Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Student is is Independent..

Choices (tick show values and enter each value):

  • Unmarried — value 0 (selected by default)
  • Married — value 1

26. Student's tax filing status · Drop Down · ID 18
Conditional Logic (Advanced tab): Show this field if Student is is Independent..

Choices (tick show values and enter each value):

  • Single — value 2 (selected by default)
  • Married filing jointly — value 1
  • Head of household — value 3
  • Married filing separately — value 4
  • Qualifying surviving spouse — value 5
  • Did not file a 2025 tax return — value 0

27. Spouse's tax filing status · Drop Down · ID 32
Conditional Logic (Advanced tab): Show this field if Student is is Independent and Student is is Married and Student's tax filing status is not Married filing jointly..

Choices (tick show values and enter each value):

  • Married filing separately — value 4 (selected by default)
  • Single — value 2
  • Head of household — value 3
  • Qualifying surviving spouse — value 5
  • Did not file a 2025 tax return — value 0

28. Student received the Earned Income Tax Credit · Radio Buttons · ID 19
Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Student is is Independent and Student is is Unmarried..

Choices (tick show values and enter each value):

  • No — value 0 (selected by default)
  • Yes — value 1

29. Student's adjusted gross income (AGI) · Number · ID 20
Number Format Currency; Default Value 4500.

30. Student income from work · Number · ID 21
Number Format Currency; Default Value 4500; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed).

31. Spouse income from work · Number · ID 22
Number Format Currency; Default Value 0; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Independent and Student is is Married..

32. Student's federal income tax paid · Number · ID 23
Number Format Currency; Default Value 0.

33. Student's other income items · Radio Buttons · ID 44
Description “Untaxed income (IRA deductions, tax-exempt interest, untaxed IRA and pension distributions, foreign income exclusion) and offsets (taxable grants, education credits, work-study). Most families have none.”; Custom CSS Class (Appearance tab) fo-segmented.

Choices (tick show values and enter each value):

  • None — value 0 (selected by default)
  • Enter them — value 1

34. Student's deductible IRA, SEP, SIMPLE and Keogh payments · Number · ID 60
Number Format Currency; Default Value 0; Description “Schedule 1, lines 16 and 20.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

35. Student's tax-exempt interest · Number · ID 61
Number Format Currency; Default Value 0; Description “Form 1040, line 2a.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

36. Student's untaxed IRA distributions · Number · ID 62
Number Format Currency; Default Value 0; Description “Form 1040, line 4a minus line 4b.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

37. Student's IRA rollovers · Number · ID 63
Number Format Currency; Default Value 0; Description “The part of those distributions that was rolled over. If married filers each have one, count each person’s rollover only up to their own distributions.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

38. Student's untaxed pensions · Number · ID 64
Number Format Currency; Default Value 0; Description “Form 1040, line 5a minus line 5b.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

39. Student's pension rollovers · Number · ID 65
Number Format Currency; Default Value 0; Description “Same rule as IRA rollovers.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

40. Student's foreign earned income exclusion · Number · ID 66
Number Format Currency; Default Value 0; Description “Form 2555. Also counts toward the Pell Grant income limits.”; Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

41. Student's taxable college grants and scholarships · Number · ID 67
Number Format Currency; Default Value 0; Description “Grant, scholarship and AmeriCorps amounts reported as income.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

42. Student's education tax credits · Number · ID 68
Number Format Currency; Default Value 0; Description “American Opportunity and Lifetime Learning credits, Schedule 3, line 3.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

43. Student's federal work-study earnings · Number · ID 69
Number Format Currency; Default Value 0; Conditional Logic (Advanced tab): Show this field if Student's other income items is Enter them..

44. Assets · Section · ID 52
Description “What the family owns today. Leave out retirement accounts and the home you live in. Some families don’t report assets at all; the first questions decide.”.

45. Received a means-tested federal benefit in 2025 or 2026 · Radio Buttons · ID 55
Description “Anyone in the household: SNAP, Medicaid, SSI, TANF, WIC, free or reduced-price school lunch, federal housing assistance, the Earned Income Tax Credit or a Marketplace premium tax credit counts.”; Custom CSS Class (Appearance tab) fo-segmented.

Choices (tick show values and enter each value):

  • No — value 0 (selected by default)
  • Yes — value 1

46. Filed Schedule A, B, D, E, F or H with the 2025 return · Radio Buttons · ID 56
Description “Itemized deductions, interest and dividends over $1,500, capital gains, rental or partnership income, farm income, household employment tax.”; Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Received a means-tested federal benefit in 2025 or 2026 is No..

Choices (tick show values and enter each value):

  • No — value 0 (selected by default)
  • Yes — value 1

47. Schedule C profit or loss over $10,000 · Radio Buttons · ID 57
Custom CSS Class (Appearance tab) fo-segmented; Conditional Logic (Advanced tab): Show this field if Received a means-tested federal benefit in 2025 or 2026 is No..

Choices (tick show values and enter each value):

  • No — value 0 (selected by default)
  • Yes — value 1

48. Assets not counted · HTML · ID 58
Conditional Logic (Advanced tab): Show this field if No assets is greater than 0..

Content: Assets don’t count for this family: a means-tested benefit, AGI under $60,000 without those schedules, or a maximum Pell Grant.

49. Child support received in 2025 · Number · ID 13
Number Format Currency; Default Value 0; Conditional Logic (Advanced tab): Show this field if Student is is Dependent and No assets is less than 1..

50. Child support received in 2025 · Number · ID 26
Number Format Currency; Default Value 0; Conditional Logic (Advanced tab): Show this field if Student is is Independent and No assets is less than 1..

51. Parents' cash, savings and checking · Number · ID 14
Number Format Currency; Default Value 12000; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and No assets is less than 1..

52. Parents' investments (net worth) · Number · ID 15
Number Format Currency; Default Value 20000; Description “Real estate other than your home, stocks, bonds, funds, 529 plans and trusts, minus what you owe on them. Leave out retirement accounts and your home.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if Student is is Dependent and No assets is less than 1..

53. Parents' business and farm net worth · Number · ID 16
Number Format Currency; Default Value 0; Description “What the business or farm is worth, minus what it owes. Small businesses and family farms count.”; Conditional Logic (Advanced tab): Show this field if Student is is Dependent and No assets is less than 1..

54. Student's cash, savings and checking · Number · ID 27
Number Format Currency; Default Value 1500; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if No assets is less than 1..

55. Student's investments (net worth) · Number · ID 28
Number Format Currency; Default Value 0; Description “Real estate other than your home, stocks, bonds, funds, 529 plans and trusts, minus what you owe on them. Leave out retirement accounts and your home.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Conditional Logic (Advanced tab): Show this field if No assets is less than 1..

56. Student's business and farm net worth · Number · ID 29
Number Format Currency; Default Value 0; Conditional Logic (Advanced tab): Show this field if No assets is less than 1..

57. Parent Medicare limit · Number · ID 160
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent status:5} == 1 ):
250000
elseif( {Parent status:5} == 4 ):
125000
else:
200000
endif;

58. Other parent Medicare limit · Number · ID 161
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Other parent status:31} == 1 ):
250000
elseif( {Other parent status:31} == 4 ):
125000
else:
200000
endif;

59. Parent Social Security cap · Number · ID 162
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent status:5} == 1 ):
352200
else:
176100
endif;

60. Other parent Social Security cap · Number · ID 163
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Other parent status:31} == 1 ):
352200
else:
176100
endif;

61. Student Medicare limit · Number · ID 164
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student status:18} == 1 ):
250000
elseif( {Student status:18} == 4 ):
125000
else:
200000
endif;

62. Spouse Medicare limit · Number · ID 165
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Spouse status:32} == 1 ):
250000
elseif( {Spouse status:32} == 4 ):
125000
else:
200000
endif;

63. Student Social Security cap · Number · ID 166
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student status:18} == 1 ):
352200
else:
176100
endif;

64. Spouse Social Security cap · Number · ID 167
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Spouse status:32} == 1 ):
352200
else:
176100
endif;

65. AGI for assets · Number · ID 168
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 ):
{Parent AGI:7}
else:
{Student AGI:20}
endif;

66. Parent untaxed income · Number · ID 169
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Parent IRA deductions:34} + {Parent tax-exempt interest:35} + max( 0, ( {Parent IRA distributions:36} - {Parent IRA rollovers:37} ) ) + max( 0, ( {Parent pensions:38} - {Parent pension rollovers:39} ) ) + abs( {Parent foreign income:40} ) ) )

67. Student untaxed income · Number · ID 170
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Student IRA deductions:60} + {Student tax-exempt interest:61} + max( 0, ( {Student IRA distributions:62} - {Student IRA rollovers:63} ) ) + max( 0, ( {Student pensions:64} - {Student pension rollovers:65} ) ) + abs( {Student foreign income:66} ) ) )

68. Has dependents · Number · ID 101
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student married:17} == 1 && {Family size:3} >= 3 ):
1
elseif( {Student married:17} == 0 && {Family size:3} >= 2 ):
1
else:
0
endif;

69. Formula · Number · ID 100
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 ):
1
elseif( {Has dependents:101} == 1 ):
3
else:
2
endif;

70. Non-filer · Number · ID 102
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 && {Parent status:5} == 0 && {Other parent status:31} == 0 ):
1
elseif( {Dependency:1} == 0 && {Student status:18} == 0 && {Spouse status:32} == 0 ):
1
else:
0
endif;

71. Single parent · Number · ID 103
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 && {Parents married:4} == 0 && ( {Parent status:5} == 3 || {Parent status:5} == 5 || {Parent EITC:6} == 1 ) ):
1
elseif( {Dependency:1} == 0 && {Student married:17} == 0 && {Has dependents:101} == 1 && ( {Student status:18} == 3 || {Student status:18} == 5 || {Student EITC:19} == 1 ) ):
1
else:
0
endif;

72. AGI for Pell · Number · ID 104
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 ):
{Parent AGI:7} + abs( {Parent foreign income:40} )
else:
{Student AGI:20} + abs( {Student foreign income:66} )
endif;

73. Poverty guideline · Number · ID 105
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {State:2} == 2 ):
19550 + 6880 * ( {Family size:3} - 1 )
elseif( {State:2} == 3 ):
17990 + 6330 * ( {Family size:3} - 1 )
else:
15650 + 5500 * ( {Family size:3} - 1 )
endif;

74. Maximum Pell limit · Number · ID 106
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Single parent:103} == 1 ):
2.25 * {Poverty guideline:105}
else:
1.75 * {Poverty guideline:105}
endif;

75. Minimum Pell limit · Number · ID 107
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 1 && {Single parent:103} == 1 ):
3.25 * {Poverty guideline:105}
elseif( {Dependency:1} == 1 ):
2.75 * {Poverty guideline:105}
elseif( {Single parent:103} == 1 ):
4 * {Poverty guideline:105}
elseif( {Has dependents:101} == 1 ):
3.5 * {Poverty guideline:105}
else:
2.75 * {Poverty guideline:105}
endif;

76. Maximum Pell · Number · ID 108
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Non-filer:102} == 1 ):
1
elseif( {AGI for Pell:104} > 0 && {AGI for Pell:104} <= {Maximum Pell limit:106} ):
1
else:
0
endif;

77. Minimum Pell · Number · ID 109
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {AGI for Pell:104} <= {Minimum Pell limit:107} ):
1
else:
0
endif;

78. No assets · Number · ID 110
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Means-tested benefit:55} == 1 ):
1
elseif( {AGI for assets:168} < 60000 && {Schedules:56} == 0 && {Schedule C:57} == 0 ):
1
elseif( {Maximum Pell:108} == 1 ):
1
else:
0
endif;

79. Parent total income · Number · ID 111
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Parent AGI:7} + {Parent untaxed income:169} - {Parent grants:41} - {Parent education credits:42} - {Parent work-study:43} ) )

80. Parent Medicare · Number · ID 112
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent status:5} == 1 ):
0.0145 * min( ( {Parent work:8} + {Other parent work:9} ), 250000 ) + 0.0235 * max( ( {Parent work:8} + {Other parent work:9} - 250000 ), 0 )
else:
0.0145 * min( {Parent work:8}, {Parent Medicare limit:160} ) + 0.0235 * max( ( {Parent work:8} - {Parent Medicare limit:160} ), 0 ) + 0.0145 * min( {Other parent work:9}, {Other parent Medicare limit:161} ) + 0.0235 * max( ( {Other parent work:9} - {Other parent Medicare limit:161} ), 0 )
endif;

81. Parent Social Security · Number · ID 113
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent status:5} == 1 ):
0.062 * min( ( {Parent work:8} + {Other parent work:9} ), 352200 )
else:
0.062 * min( {Parent work:8}, {Parent Social Security cap:162} ) + 0.062 * min( {Other parent work:9}, {Other parent Social Security cap:163} )
endif;

82. Parent income protection · Number · ID 114
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Dependency:1} == 0 ):
0
elseif( {Family size:3} <= 2 ):
30300
elseif( {Family size:3} == 3 ):
37720
elseif( {Family size:3} == 4 ):
46590
elseif( {Family size:3} == 5 ):
54970
else:
64290 + 7260 * ( {Family size:3} - 6 )
endif;

83. Parent employment allowance · Number · ID 115
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

min( ( 0.35 * ( {Parent work:8} + {Other parent work:9} ) ), 5200 )

84. Parent available income · Number · ID 116
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Parent total income:111} - {Parent tax:10} - {Parent Medicare:112} - {Parent Social Security:113} - {Parent income protection:114} - {Parent employment allowance:115} ) )

85. Parent business adjusted · Number · ID 117
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent business:16} < 1 ):
0
elseif( {Parent business:16} <= 180000 ):
0.4 * {Parent business:16}
elseif( {Parent business:16} <= 540000 ):
72000 + 0.5 * ( {Parent business:16} - 180000 )
elseif( {Parent business:16} <= 905000 ):
252000 + 0.6 * ( {Parent business:16} - 540000 )
else:
471000 + {Parent business:16} - 905000
endif;

86. Parent contribution from assets · Number · ID 118
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {No assets:110} == 1 ):
0
else:
0.12 * ( {Parent child support:13} + {Parent cash:14} + max( {Parent investments:15}, 0 ) + {Parent business adjusted:117} )
endif;

87. Parent adjusted available income · Number · ID 119
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Parent available income:116} + {Parent contribution from assets:118} ) )

88. Parent contribution · Number · ID 120
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Parent adjusted available income:119} < ( 0 - 8900 ) ):
0 - 1958
elseif( {Parent adjusted available income:119} < 0 ):
0.22 * {Parent adjusted available income:119} - 0.0001
elseif( {Parent adjusted available income:119} <= 22600 ):
0.22 * {Parent adjusted available income:119}
elseif( {Parent adjusted available income:119} <= 28300 ):
4972 + 0.25 * ( {Parent adjusted available income:119} - 22600 )
elseif( {Parent adjusted available income:119} <= 34000 ):
6397 + 0.29 * ( {Parent adjusted available income:119} - 28300 )
elseif( {Parent adjusted available income:119} <= 39900 ):
8050 + 0.34 * ( {Parent adjusted available income:119} - 34000 )
elseif( {Parent adjusted available income:119} <= 45600 ):
10056 + 0.4 * ( {Parent adjusted available income:119} - 39900 )
else:
12336 + 0.47 * ( {Parent adjusted available income:119} - 45600 )
endif;

89. Student total income · Number · ID 121
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Student AGI:20} + {Student untaxed income:170} - {Student grants:67} - {Student education credits:68} - {Student work-study:69} ) )

90. Student Medicare · Number · ID 122
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student status:18} == 1 ):
0.0145 * min( ( {Student work:21} + {Spouse work:22} ), 250000 ) + 0.0235 * max( ( {Student work:21} + {Spouse work:22} - 250000 ), 0 )
else:
0.0145 * min( {Student work:21}, {Student Medicare limit:164} ) + 0.0235 * max( ( {Student work:21} - {Student Medicare limit:164} ), 0 ) + 0.0145 * min( {Spouse work:22}, {Spouse Medicare limit:165} ) + 0.0235 * max( ( {Spouse work:22} - {Spouse Medicare limit:165} ), 0 )
endif;

91. Student Social Security · Number · ID 123
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student status:18} == 1 ):
0.062 * min( ( {Student work:21} + {Spouse work:22} ), 352200 )
else:
0.062 * min( {Student work:21}, {Student Social Security cap:166} ) + 0.062 * min( {Spouse work:22}, {Spouse Social Security cap:167} )
endif;

92. Student income protection · Number · ID 124
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Formula:100} == 1 ):
12220
elseif( {Formula:100} == 2 && {Student married:17} == 1 ):
30470
elseif( {Formula:100} == 2 ):
19000
elseif( {Student married:17} == 1 && {Family size:3} <= 3 ):
59930
elseif( {Student married:17} == 1 && {Family size:3} == 4 ):
74000
elseif( {Student married:17} == 1 && {Family size:3} == 5 ):
87320
elseif( {Student married:17} == 1 ):
102120 + 11530 * ( {Family size:3} - 6 )
elseif( {Family size:3} <= 2 ):
57050
elseif( {Family size:3} == 3 ):
71040
elseif( {Family size:3} == 4 ):
87700
elseif( {Family size:3} == 5 ):
103500
else:
121030 + 13680 * ( {Family size:3} - 6 )
endif;

93. Student employment allowance · Number · ID 125
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Formula:100} == 1 ):
0
elseif( {Formula:100} == 2 && {Student married:17} == 0 ):
0
else:
min( ( 0.35 * ( {Student work:21} + {Spouse work:22} ) ), 5200 )
endif;

94. Parent negative income allowance · Number · ID 126
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

max( 0, ( 0 - {Parent adjusted available income:119} ) )

95. Student available income · Number · ID 127
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Student total income:121} - {Student tax:23} - {Student Medicare:122} - {Student Social Security:123} - {Student income protection:124} - {Student employment allowance:125} - {Parent negative income allowance:126} ) )

96. Student business adjusted · Number · ID 128
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student business:29} < 1 ):
0
elseif( {Student business:29} <= 180000 ):
0.4 * {Student business:29}
elseif( {Student business:29} <= 540000 ):
72000 + 0.5 * ( {Student business:29} - 180000 )
elseif( {Student business:29} <= 905000 ):
252000 + 0.6 * ( {Student business:29} - 540000 )
else:
471000 + {Student business:29} - 905000
endif;

97. Student net worth · Number · ID 129
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {No assets:110} == 1 ):
0
else:
{Student child support:26} + {Student cash:27} + max( {Student investments:28}, 0 ) + {Student business adjusted:128}
endif;

98. Student contribution from assets · Number · ID 130
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Formula:100} == 3 ):
0.07 * {Student net worth:129}
else:
0.2 * {Student net worth:129}
endif;

99. Student contribution from income · Number · ID 131
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Formula:100} == 1 ):
max( 0, ( 0.5 * {Student available income:127} ) )
elseif( {Formula:100} == 2 && {Student available income:127} < 0 ):
0.5 * {Student available income:127} - 0.0001
elseif( {Formula:100} == 2 ):
0.5 * {Student available income:127}
else:
{Student available income:127}
endif;

100. Student adjusted available income · Number · ID 132
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

round( ( {Student contribution from income:131} + {Student contribution from assets:130} ) )

101. Student contribution from AAI · Number · ID 133
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Student adjusted available income:132} < ( 0 - 8900 ) ):
0 - 1958
elseif( {Student adjusted available income:132} < 0 ):
0.22 * {Student adjusted available income:132} - 0.0001
elseif( {Student adjusted available income:132} <= 22600 ):
0.22 * {Student adjusted available income:132}
elseif( {Student adjusted available income:132} <= 28300 ):
4972 + 0.25 * ( {Student adjusted available income:132} - 22600 )
elseif( {Student adjusted available income:132} <= 34000 ):
6397 + 0.29 * ( {Student adjusted available income:132} - 28300 )
elseif( {Student adjusted available income:132} <= 39900 ):
8050 + 0.34 * ( {Student adjusted available income:132} - 34000 )
elseif( {Student adjusted available income:132} <= 45600 ):
10056 + 0.4 * ( {Student adjusted available income:132} - 39900 )
else:
12336 + 0.47 * ( {Student adjusted available income:132} - 45600 )
endif;

102. SAI calculated · Number · ID 134
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-sai-worker; Visibility (Advanced tab) Hidden; tick Enable Calculation, Rounding 0.

if( {Formula:100} == 1 ):
max( ( 0 - 1500 ), ( {Parent contribution:120} + {Student contribution from income:131} + {Student contribution from assets:130} ) )
elseif( {Formula:100} == 2 ):
max( ( 0 - 1500 ), ( {Student contribution from income:131} + {Student contribution from assets:130} ) )
else:
max( ( 0 - 1500 ), {Student contribution from AAI:133} )
endif;

103. Student Aid Index (SAI) · Number · ID 140
Number Format 9,999.99; Description “Runs from −1,500 to 999,999. The lower it is, the more need-based aid.”; Custom CSS Class (Appearance tab) fo-result; tick Enable Calculation, Rounding 0.

if( {Non-filer:102} == 1 ):
0 - 1500
elseif( {Maximum Pell:108} == 1 ):
min( 0, {SAI calculated:134} )
else:
{SAI calculated:134}
endif;

104. Estimated Pell Grant · Number · ID 141
Number Format Currency; Description “Full-time, full year. Scales down for part-time enrollment.”; Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0.

if( {Maximum Pell:108} == 1 || {SAI:140} <= 0 ):
7395
elseif( {SAI:140} <= 6655 ):
5 * round( ( ( 7395 - {SAI:140} ) / 5 ) )
elseif( {Minimum Pell:109} == 1 && {SAI:140} < 14790 ):
740
else:
0
endif;

105. Maximum Pell · HTML · ID 150
Conditional Logic (Advanced tab): Show this field if Maximum Pell is greater than 0..

Content: Maximum Pell Grant: the family did not file a 2025 return, or its AGI is at or below the poverty-guideline limit for its size and state.

106. Pell from SAI · HTML · ID 151
Conditional Logic (Advanced tab): Show this field if Maximum Pell is less than 1 and Student Aid Index (SAI) is less than 6656..

Content: Pell Grant from the SAI: $7,395 minus the SAI, rounded to the nearest $5.

107. Minimum Pell · HTML · ID 152
Conditional Logic (Advanced tab): Show this field if Maximum Pell is less than 1 and Student Aid Index (SAI) is greater than 6655 and Estimated Pell Grant is greater than 0..

Content: Minimum Pell Grant ($740): AGI is within the minimum-Pell poverty-guideline limit and the SAI is under $14,790.

108. No Pell · HTML · ID 153
Conditional Logic (Advanced tab): Show this field if Estimated Pell Grant is less than 1..

Content: No Pell Grant at this SAI. Schools still use the SAI for other need-based aid, such as subsidized loans and work-study.

109. Parents' contribution · Number · ID 142
Number Format 9,999.99; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

{Parent contribution:120}

110. Student contribution from income · Number · ID 143
Number Format 9,999.99; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

{Student contribution from income:131}

111. Student contribution from assets · Number · ID 144
Number Format 9,999.99; Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0; Conditional Logic (Advanced tab): Show this field if Student is is Dependent..

{Student contribution from assets:130}

112. Student available income · Number · ID 145
Number Format 9,999.99; Description “Income left after taxes and the living allowance.”; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0; Conditional Logic (Advanced tab): Show this field if Student is is Independent..

{Student available income:127}

113. Contribution from assets · Number · ID 146
Number Format 9,999.99; Layout: half width, on the same row as its neighbor (drag the field beside it in the editor; no CSS class needed); Custom CSS Class (Appearance tab) fo-result fo-result--sub; tick Enable Calculation, Rounding 0; Conditional Logic (Advanced tab): Show this field if Student is is Independent..

{Student contribution from assets:130}

3. Hide the submit button

The results are live, so nothing needs submitting. Add this filter to your theme’s functions.php or a code-snippets plugin; it hides the button on any form carrying the fo-live-only class:

add_filter( 'gform_submit_button', function ( $button, $form ) {
	return str_contains( (string) rgar( $form, 'cssClass' ), 'fo-live-only' ) ? '' : $button;
}, 10, 2 );

Or with CSS alone: .fo-live-only_wrapper .gform_footer { display: none; }

4. Put it on a page and make it look like this

Add the form to any page with the Gravity Forms block, or the shortcode [gravityform id="X" title="false" ajax="false"]. The form inherits your theme’s styles; the classes you set in step 2 are hooks for the look you see on this site:

  • fo-result on a calculation field makes it the big teal result panel.
  • fo-result fo-result--sub makes the smaller secondary figures.
  • fo-segmented on a radio field turns it into a segmented switch.
  • Two fields on one row is the editor’s own column layout: drag a field beside another and the row splits in half. No CSS class is needed, and the old gf_left_half Ready Classes are deprecated.

The bundle includes the two stylesheets that implement those classes, with notes on matching your brand colors. Without them the form still works; it just looks like your theme’s default Gravity Forms styling.

How the math works is explained under “How it’s calculated” on the live FAFSA SAI & Pell Grant calculator.