Your payroll company works for their shareholders.

I work for you.

Independent payroll processing, audits and compliance oversight — delivered remotely, with no vendor relationships and no commissions. My only job is making sure your payroll is right.


Most businesses assume their payroll is correct.

Most businesses use ADP, Paychex, or Gusto and trust that everything is running smoothly. Usually it is. But payroll errors are invisible until the IRS finds them — and by then, you're already paying penalties and interest. Your payroll vendor processes your payroll. Nobody is checking whether they're doing it right. That's why independent oversight exists.


What I Do

🔍 I review your payroll — Tax filings, deposits, state registrations, vendor execution — verified against your actual numbers.

⚠️ I find what your vendor missed — Overtime errors, late deposits, missing state registrations, W-2 discrepancies — caught before they become your problem.

✅ You get a written report — Clear findings, plain language. No jargon. No sales pitch. Just the truth about what's right, what's wrong, and what to do next.


How I can help

Already running payroll?
Independent audit of your payroll operations and tax filings. Starting at $750 for a single quarter. Written findings included.

Evaluating a new vendor?
Don't sign a 3-year payroll contract without independent guidance. I'll attend demos, review proposals, and tell you what you're actually signing. Starting at $1,500.

Got an IRS notice?
I've spent over 20 years reviewing tax notices, I'll investigate the issue and guide you to resolution. Starting at $750.


Why AFJS Consulting?

No vendor relationships
I don't get commissions if you sign with anyone. I have no financial stake in which payroll company you use. My only job is making sure your numbers are right.

25+ years of experience
I've worked at the director level in national PEO and payroll operations. I know where the problems hide because I've fixed them — repeatedly.

Plain English only
No payroll jargon. No tax code references. I explain exactly what's happening with your money in language that makes sense.

I actually answer the phone
Your payroll vendor has a support queue. I have a phone number. You can call it.


Who I work With

🏢 Small Businesses
Using ADP, Paychex, Gusto, or any third-party payroll vendor and want independent verification that it's actually working correctly.

🌾 Agricultural & Farm Employers
Farm payroll has its own rules — H-2A workers, piece-rate calculations, seasonal hiring cycles. Most payroll vendors don't understand it. I do.

📋 CPA & Bookkeeper Referrals
I don't do tax prep, bookkeeping, or accounting. Zero overlap with your work. When your client's payroll is a mess, I'm the person you call.


Find out if your payroll is right — before the IRS does.

The first conversation is always free. No obligation, no sales pitch. Just an honest look at whether you have anything to worry about.All services delivered remotely. Vendor-neutral. No commissions.

Call or text AFJS & Karen directly: 856-249-6091
Email: [email protected]

Services & Pricing

All services delivered remotely. No vendor relationships. No commissions.


When Something Feels Off

Payroll Tax Issue Resolution
Got an IRS or state notice? I'm PTIN-credentialed — I represent you, not just advise you. I'll investigate the issue, identify the root cause, and guide you to resolution.
$750 – $2,500 per issue, depending on complexity

Payroll & Compliance Audit
Independent review of your payroll operations, tax filings, deposits, and vendor execution. Written findings report plus a 60-minute review call included.
$750 – $1,250 per quarter | $2,700 – $4,500 annually

W-2 / 1099 Accuracy Review
Year-end verification before your employees file taxes — and before errors become corrections. Starting at $300 for up to 50 employees.


Getting Set Up Right

Vendor Selection & Contract Review
Before you sign a 3-year payroll contract, get independent guidance. I'll attend demos, compare proposals, and tell you what you're actually committing to.
$1,500 – $3,000 per engagement

Payroll System Implementation Oversight
Switching vendors? I act as your independent subject matter expert — reviewing setup, validating configurations, and making sure your first live payroll runs correctly.
$2,000 – $6,000 per implementation

State Employment Tax Registration
End-to-end setup of required employer tax accounts. Most businesses need 2+ agencies.
$300 per tax ID
$250 each additional ID on same engagement

New Hire Compliance Setup
Audit of your onboarding forms, required postings, and new hire workflow — plus per-hire onboarding support available.
$750 – $1,250 one-time & $100 – $150 per hire


Ongoing Oversight

Quarterly Tax Compliance Review
Independent second set of eyes on your payroll tax filings every quarter. Verify deposits, review returns, catch discrepancies early.
$250/quarter + $100 per additional state

Fractional Payroll Operations — Tier 1
Oversight, compliance checks, vendor coordination, and quarterly reviews. A second set of eyes without adding headcount.
$750 – $1,000/month

Fractional Payroll Operations — Tier 2
Everything in Tier 1, plus timekeeping follow-up, issue resolution, and employee payroll support.
$1,200 – $1,800/month

Not sure which service fits your situation? The first call is free.
856-249-6091 | [email protected]

About AFJS Consulting & Karen

I know where payroll problems hide — because I've fixed them. Repeatedly.

I'm Karen Ehrenberg, a Certified Payroll Professional (CPP) with 25+ years of experience in payroll operations and employment tax compliance. I've worked at the director level inside national PEO organizations, implementing payroll systems for hundreds of clients across industries — including small businesses, nonprofits, and agricultural employers.I started AFJS Consulting because I kept seeing the same problem: businesses trusted their payroll vendor completely, and their vendor had no incentive to flag its own mistakes. By the time an error surfaced — usually via an IRS notice — it had already cost the business time, money, and stress that a simple second set of eyes could have prevented.So that's what I am. An independent second set of eyes.I'm PTIN-credentialed with the IRS, which means I can represent you directly before tax agencies — not just advise you from the sidelines. I have no vendor relationships and earn no commissions. My only financial interest is in doing good work for my clients.I specialize in small and mid-sized businesses, agricultural and farm employers, and working alongside CPAs and bookkeepers who want payroll-specific support for their clients without taking on payroll themselves.All services are delivered remotely. I work across New Jersey, Pennsylvania, Delaware, and nationally.

✔ Certified Payroll Professional (CPP)
✔ PTIN-Credentialed (IRS Representation)
✔ 25+ Years Payroll & Employment Tax Experience
✔ Director-Level PEO & Payroll Operations Background
✔ Independent — No Vendor Relationships, No Commissions

Ready to find out if your payroll is right?
The first conversation is always free.
856-249-6091 | [email protected]

Let's talk about your payroll.

The first conversation is always free. No obligation, no sales pitch — just an honest look at whether you have anything to worry about.

📞 856-249-6091 (call or text)
[email protected]
🌐 afjsconsulting.com
All services delivered remotely

Payroll Calculators

Important: These tool does not constitute legal or tax advice.

Regular Rate of Pay Calculator

For any pay period with multiple pay rates, non-discretionary bonuses, or commissions. Calculates the FLSA regular rate and half-time premium rate. Use the Half Time Premium Rate to calculate overtime payment & federally tax free portion

01Hourly Pay Rates — Enter rate and hours for each rate used in this pay period
Rate ($/hr)HoursPay
Rate 1
Rate 2
Rate 3
Rate 4
Rate 5
Rate 6
Rate 7
02Non-Discretionary Bonuses & Commissions — Fixed amounts included in this period
Non-Disc. Bonus 1
Non-Disc. Bonus 2
Commission
Totals
⚠ Total hours must be greater than 0 to calculate.
Regular Rate of Pay
Total pay ÷ total hours
Half-Time Premium Rate
RRP × 0.5 — use this to calculate OT owed
Formula:RRP = Total Pay ÷ Total Hours  |  Half-Time Premium = RRP × 0.5
(function() { var rates = ['r1','r2','r3','r4','r5','r6','r7']; var fixed = ['f1','f2','f3']; function get(id) { return document.getElementById(id); } function fmt(v) { return '$' + v.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } function calc() { var totalHours = 0, totalPay = 0; for (var i = 0; i < rates.length; i++) { var r = parseFloat(get(rates[i]+'r').value) || 0; var h = parseFloat(get(rates[i]+'h').value) || 0; var p = r * h; get(rates[i]+'p').textContent = (r > 0 || h > 0) ? fmt(p) : '\u2014'; totalHours += h; totalPay += p; } for (var j = 0; j < fixed.length; j++) { var a = parseFloat(get(fixed[j]).value) || 0; get(fixed[j]+'p').textContent = a > 0 ? fmt(a) : '\u2014'; totalPay += a; } get('tot-hrs').textContent = totalHours > 0 ? totalHours.toFixed(2) + ' hrs' : '\u2014'; get('tot-pay').textContent = totalPay > 0 ? fmt(totalPay) : '\u2014'; if (totalHours <= 0) { get('out-rrp').textContent = '\u2014'; get('out-prem').textContent = '\u2014'; get('rrp-err').style.display = totalPay > 0 ? 'block' : 'none'; return; } get('rrp-err').style.display = 'none'; var rrp = totalPay / totalHours; var prem = rrp * 0.5; get('out-rrp').textContent = fmt(rrp); get('out-prem').textContent = fmt(prem); get('out-formula').textContent = 'RRP = ' + fmt(totalPay) + ' \u00f7 ' + totalHours.toFixed(2) + ' hrs = ' + fmt(rrp) + ' | Half-Time Premium = ' + fmt(rrp) + ' \u00d7 0.5 = ' + fmt(prem) + ' /hr'; } function clearAll() { var ins = ['r1r','r1h','r2r','r2h','r3r','r3h','r4r','r4h','r5r','r5h','r6r','r6h','r7r','r7h','f1','f2','f3']; for (var i = 0; i < ins.length; i++) { get(ins[i]).value = ''; } var pays = ['r1p','r2p','r3p','r4p','r5p','r6p','r7p','f1p','f2p','f3p']; for (var j = 0; j < pays.length; j++) { get(pays[j]).textContent = '\u2014'; } get('tot-hrs').textContent = '\u2014'; get('tot-pay').textContent = '\u2014'; get('out-rrp').textContent = '\u2014'; get('out-prem').textContent = '\u2014'; get('rrp-err').style.display = 'none'; get('out-formula').textContent = 'RRP = Total Pay \u00f7 Total Hours | Half-Time Premium = RRP \u00d7 0.5'; } var allIns = ['r1r','r1h','r2r','r2h','r3r','r3h','r4r','r4h','r5r','r5h','r6r','r6h','r7r','r7h','f1','f2','f3']; for (var k = 0; k < allIns.length; k++) { get(allIns[k]).addEventListener('input', calc); } get('rrp-clear').addEventListener('click', clearAll); })();

Important: This calculator uses the FLSA weighted-average method to determine the regular rate of pay and the half-time premium rate across any pay period. It does not calculate total gross pay or total overtime owed — those calculations depend on your specific pay period structure, OT hours, and any multi-period bonus allocations. For retroactive commission scenarios, piece-rate situations, or state-specific overtime rules (e.g., California daily OT), consult a payroll compliance professional. This tool does not constitute legal or tax advice.

Tip Overtime Calculator

01Applicable Minimum Wage — Enter the minimum wage for your state or locality
Enter the applicable minimum wage for your state or locality. Some cities and counties have rates higher than the state minimum — always use the highest applicable rate.
Not sure of your rate? Look it up here →
02Hourly Pay Rates — Enter tipped and non-tipped rates and hours worked
Rate ($/hr)HoursPay
Rate 1
Rate 2
Rate 3
Rate 4
03Tips & Other Amounts Received This Period
Amount
Tips Received 1
Tips Received 2
Other Amount

Include all tips actually received by the employee this period (cash tips, credit card tips, tip pool distributions). “Other Amount” can be used for service charges or other compensation included in total pay.

Totals
Total Pay Received
Wages + tips + other
Minimum Wage Floor
Total hrs × min wage
Makeup Pay Owed
Shortfall vs. min floor
Formula:(Total Hrs × Min Wage) − Total Pay = Makeup Owed (if positive)
(function() { var rateIds = ['tr1','tr2','tr3','tr4']; var fixedIds = ['tf1','tf2','tf3']; function get(id) { return document.getElementById(id); } function fmt(v) { return '$' + v.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } function calc() { var minWage = parseFloat(get('tmw').value) || 0; var totalHours = 0, totalWages = 0, totalFixed = 0; for (var i = 0; i < rateIds.length; i++) { var r = parseFloat(get(rateIds[i]+'r').value) || 0; var h = parseFloat(get(rateIds[i]+'h').value) || 0; var p = r * h; get(rateIds[i]+'p').textContent = (r > 0 || h > 0) ? fmt(p) : '\u2014'; totalHours += h; totalWages += p; } for (var j = 0; j < fixedIds.length; j++) { var a = parseFloat(get(fixedIds[j]).value) || 0; get(fixedIds[j]+'p').textContent = a > 0 ? fmt(a) : '\u2014'; totalFixed += a; } var totalPay = totalWages + totalFixed; get('tt-hrs').textContent = totalHours > 0 ? totalHours.toFixed(2) + ' hrs' : '\u2014'; get('tt-pay').textContent = totalPay > 0 ? fmt(totalPay) : '\u2014'; if (totalHours <= 0 || minWage <= 0) { get('to-pay').textContent = totalPay > 0 ? fmt(totalPay) : '\u2014'; get('to-floor').textContent = '\u2014'; get('to-makeup').textContent = '\u2014'; get('tv-box').style.display = 'none'; get('to-formula').textContent = '(Total Hrs \u00d7 Min Wage) \u2212 Total Pay = Makeup Owed (if positive)'; return; } var floor = totalHours * minWage; var shortfall = floor - totalPay; var makeup = shortfall > 0 ? shortfall : 0; get('to-pay').textContent = fmt(totalPay); get('to-floor').textContent = fmt(floor); get('to-makeup').textContent = fmt(makeup); var vbox = get('tv-box'); vbox.style.display = 'block'; if (makeup > 0) { vbox.className = 'tip-verdict owed'; get('tv-title').textContent = '\u26a0 Minimum Wage Makeup Required'; get('tv-body').innerHTML = 'Total compensation of ' + fmt(totalPay) + ' falls short of the ' + fmt(floor) + ' minimum wage floor. The employer must pay an additional ' + fmt(makeup) + ' to bring the employee to minimum wage for this period.'; } else { vbox.className = 'tip-verdict ok'; get('tv-title').textContent = '\u2713 Minimum Wage Met'; get('tv-body').textContent = 'Total compensation of ' + fmt(totalPay) + ' meets or exceeds the ' + fmt(floor) + ' minimum wage floor. No makeup pay is required for this period.'; } get('to-formula').textContent = '(' + totalHours.toFixed(2) + ' hrs \u00d7 ' + fmt(minWage) + ') \u2212 ' + fmt(totalPay) + ' = ' + fmt(makeup) + ' makeup owed'; } var allIns = ['tmw','tr1r','tr1h','tr2r','tr2h','tr3r','tr3h','tr4r','tr4h','tf1','tf2','tf3']; for (var k = 0; k < allIns.length; k++) { get(allIns[k]).addEventListener('input', calc); } })();