For Tutoring & Education

Stop Answering
"What Are Your Rates?"
Let a Calculator Do It

Free rate calculator for your tutoring or education website. Parents get instant quotes. You get more students. Setup in 5 minutes.

No credit card required
Free forever for calculators
Works on Wix, WordPress, any site
📚 Tutoring Rate Calculator
👨‍🎓 Student Info
📖 Session Details
 
 
📦 Package
 
 
✨ Add-ons
 
💰 Your Quote
$ 55.00
/session
💡 Tip: Package deals save up to 15%!
First session includes free 15-min assessment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
export function tutoringRateForm(form: FormTs) {
form.setTitle(() => '📚 Tutoring Rate Calculator');
 
form.configureCompletionScreen({
type: 'text',
title: () => '🎓 Quote Ready!',
message: () => 'Your tutoring rate estimate is ready. Schedule a free consultation to get started!'
});
 
const subjectRates: Record<string, number> = {
'elementary': 30,
'middle': 40,
'high-school': 50,
'ap-honors': 65,
'college': 75,
'test-prep': 80
};
 
const subjectMultipliers: Record<string, number> = {
'math': 1.1,
'science': 1.15,
'english': 1.0,
'language': 1.1,
'cs': 1.2
};
 
const studentSection = form.addSubform('student', {
title: () => '👨‍🎓 Student Info',
mobileBreakpoint: 0
});
 
studentSection.addRow(row => {
row.addDropdown('level', {
label: 'Grade Level',
options: [
{ id: 'elementary', name: 'Elementary (K-5)' },
{ id: 'middle', name: 'Middle School (6-8)' },
{ id: 'high-school', name: 'High School (9-12)' },
{ id: 'ap-honors', name: 'AP/Honors' },
{ id: 'college', name: 'College' },
{ id: 'test-prep', name: 'Test Prep (SAT/ACT)' }
],
defaultValue: 'high-school',
isRequired: true
}, '1fr');
 
row.addDropdown('subject', {
label: 'Subject',
options: [
{ id: 'math', name: 'Math' },
{ id: 'science', name: 'Science' },
{ id: 'english', name: 'English' },
{ id: 'language', name: 'Foreign Language' },
{ id: 'cs', name: 'Computer Science' }
],
defaultValue: 'math',
isRequired: true
}, '1fr');
});
 
const sessionSection = form.addSubform('session', {
title: () => '📖 Session Details',
mobileBreakpoint: 0
});
 
sessionSection.addRow(row => {
row.addRadioButton('duration', {
label: 'Session Length',
options: [
{ id: '30', name: '30 min' },
{ id: '60', name: '60 min (Popular)' },
{ id: '90', name: '90 min (-5%)' },
{ id: '120', name: '2 hours (-10%)' }
],
defaultValue: '60',
orientation: 'horizontal'
}, '1fr');
 
row.addRadioButton('format', {
label: 'Format',
options: [
{ id: 'online', name: '💻 Online' },
{ id: 'in-person', name: '🏠 In-Person (+15%)' }
],
defaultValue: 'online',
orientation: 'horizontal'
}, '1fr');
});
 
const packageSection = form.addSubform('package', {
title: () => '📦 Package',
mobileBreakpoint: 0
});
 
packageSection.addRow(row => {
row.addRadioButton('packageType', {
label: 'Commitment',
options: [
{ id: 'single', name: 'Single Session' },
{ id: '4', name: '4 Sessions (-5%)' },
{ id: '8', name: '8 Sessions (-10%)' },
{ id: '12', name: '12 Sessions (-15%)' }
],
defaultValue: 'single',
orientation: 'vertical'
});
});
 
packageSection.addRow(row => {
row.addInteger('students', {
label: 'Number of Students',
min: 1,
max: 4,
defaultValue: 1,
tooltip: 'Group discount for 2+ students'
}, '1fr');
});
 
const addonsSection = form.addSubform('addons', {
title: () => '✨ Add-ons',
mobileBreakpoint: 0
});
 
addonsSection.addRow(row => {
row.addCheckboxList('addons', {
label: 'Select Add-ons',
options: [
{ id: 'homework', name: '📝 Homework Help (+$15/week)' },
{ id: 'reports', name: '📊 Progress Reports (+$10/week)' },
{ id: 'materials', name: '📚 Study Materials (+$20/week)' }
],
orientation: 'vertical'
});
});
 
const calculateRate = () => {
const level = studentSection.dropdown('level')?.value() || 'high-school';
const subject = studentSection.dropdown('subject')?.value() || 'math';
const duration = sessionSection.radioButton('duration')?.value() || '60';
const format = sessionSection.radioButton('format')?.value() || 'online';
const packageType = packageSection.radioButton('packageType')?.value() || 'single';
const students = packageSection.integer('students')?.value() || 1;
 
let hourlyRate = subjectRates[level] || 50;
hourlyRate *= subjectMultipliers[subject] || 1;
 
if (format === 'in-person') hourlyRate *= 1.15;
 
const durationMins = parseInt(duration);
const durationDiscount: Record<string, number> = { '30': 0, '60': 0, '90': 5, '120': 10 };
hourlyRate *= (1 - (durationDiscount[duration] || 0) / 100);
 
let sessionRate = hourlyRate * (durationMins / 60);
 
if (students > 1) {
sessionRate *= (1 - 0.15 * (students - 1) / students);
}
 
const packageDiscount: Record<string, number> = { single: 0, '4': 5, '8': 10, '12': 15 };
sessionRate *= (1 - (packageDiscount[packageType] || 0) / 100);
 
return Math.round(sessionRate);
};
 
const getTotalSessions = () => {
const packageType = packageSection.radioButton('packageType')?.value() || 'single';
const sessions: Record<string, number> = { single: 1, '4': 4, '8': 8, '12': 12 };
return sessions[packageType] || 1;
};
 
const getWeeklyAddons = () => {
const selected = addonsSection.checkboxList('addons')?.value() || [];
const prices: Record<string, number> = {
homework: 15,
reports: 10,
materials: 20
};
return selected.reduce((total, id) => total + (prices[id] || 0), 0);
};
 
const summary = form.addSubform('summary', {
title: () => '💰 Your Quote',
isCollapsible: false
});
 
summary.addRow(row => {
row.addPriceDisplay('sessionRate', {
label: 'Per Session',
computedValue: () => calculateRate(),
alignment: 'center',
variant: 'large',
suffix: '/session'
});
});
 
summary.addRow(row => {
row.addTextPanel('package', {
computedValue: () => {
const sessions = getTotalSessions();
const rate = calculateRate();
const total = sessions * rate;
const addons = getWeeklyAddons();
 
let text = '';
if (sessions > 1) {
text = `📦 ${sessions} sessions = $${total}`;
} else {
text = '💡 Tip: Package deals save up to 15%!';
}
 
if (addons > 0) {
text += ` | Add-ons: +$${addons}/week`;
}
 
return text;
},
customStyles: {
fontSize: '0.95rem',
color: '#059669',
textAlign: 'center',
fontWeight: '500'
}
});
});
 
summary.addRow(row => {
row.addTextPanel('note', {
computedValue: () => 'First session includes free 15-min assessment',
customStyles: {
fontSize: '0.85rem',
color: '#6b7280',
textAlign: 'center'
}
});
});
 
form.configureSubmitButton({
label: () => 'Book Free Consultation'
});
}
 

Why Tutors Love It

Stop fielding rate questions. Let parents see your value and sign up ready to start.

Save Hours Weekly

No more back-and-forth emails about rates. Parents get instant quotes 24/7.

More Students

Instant pricing means less friction. Parents sign up while they're motivated to help their child.

Sell Packages

Show package discounts upfront. Parents commit to more sessions when they see the savings.

No Coding Required

Describe your services. Our AI builds your calculator in minutes.

Add a Rate Calculator in 3 Steps

1

Build Your Calculator

Use our AI assistant or pick a template. Set your rates by subject, level, and package options.

2

Customize Your Look

Match your brand colors and add your logo. Mobile-friendly by default. Looks great everywhere.

3

Embed Anywhere

Copy 2 lines of code. Works on WordPress, Wix, Squarespace, Shopify, or any custom site.

Add to your website
<script src="https://formts.com/widget.js"></script>
<formts-widget link-id="your-calculator"></formts-widget>

Everything You Need to Automate Quotes

Real-Time Calculations

Prices update instantly as parents select options. No page reloads, no waiting.

Email Notifications

Get notified the moment someone requests a quote. Never miss a potential student.

Group Discounts

Automatically calculate group tutoring rates and sibling discounts.

Subject-Based Pricing

Set different rates for different subjects and grade levels automatically.

Works Everywhere

Embed on any website with 2 lines of code. WordPress, Wix, Squarespace, custom sites.

Mobile Optimized

Looks great on phones and tablets. Parents browse while on the go.

Frequently Asked Questions

Do I need to know how to code?

No. Our AI assistant builds the calculator from your description. Just tell it what subjects you teach and your rates. You can also start from a template and customize it - no coding required.

Will it work on my Wix/WordPress/Squarespace site?

Yes. FormTs works on any website that allows custom HTML. You just paste 2 lines of code where you want the calculator to appear. Works on WordPress, Wix, Squarespace, Shopify, and any custom site.

Is the calculator really free?

Yes. Calculators that don't collect submissions are completely free - no limits, no credit card. If you want to collect parent contact details, the Free plan includes 100 submissions/month. Need more? Pro gives you 1,000/month.

Can I offer package discounts?

Absolutely. You can set discounts for 4-session, 8-session, 12-session packages, or monthly commitments. The calculator shows parents exactly how much they save with longer commitments.

How do I get notified when someone requests a quote?

All submissions appear in your dashboard instantly. Pro plan includes email notifications and webhooks to connect with Zapier, n8n, Make, or send data directly to your scheduling software.

Can I charge different rates for different subjects?

Yes! You can set different base rates for elementary, middle school, high school, AP/Honors, and college. Plus adjust for subject difficulty - charge more for advanced math or sciences.

Ready to Stop Wasting Time on Rate Questions?

Join hundreds of tutors who automated their pricing. Start with a free template or let AI build your custom calculator.

No credit card required. Free plan available. Setup in under 10 minutes.