SiteTax logic
SiteTax provides a simple classification layer to determine whether a job in New Jersey should be treated as taxable repair work or a non-taxable capital improvement. This document captures the current assumptions and rule structure.
Important disclaimers
- This tool is for internal guidance only.
- Real jobs may include mixed conditions; classification may require judgment.
- The tool should surface its assumptions clearly. No silent classification.
Inputs
jobType– e.g."repair","replacement","remodel".improvementType– e.g."new_structure","add_square_footage", etc.hasCapitalCertificate– whether a valid certificate is on file.materialsOnly– true when no labor is provided.notes– optional free text for context or exceptions.
Outputs
classification–"taxable"or"non_taxable_capital".reason– a single-sentence explanation.suggestedTaxRate–6.625or0.
Basic decision rules
Condensed logic:
if jobType == "repair":
classification = "taxable"
reason = "Marked as repair. Repairs are taxable."
elif improvementType in ["new_structure", "add_square_footage", "finish_basement"]:
if hasCapitalCertificate:
classification = "non_taxable_capital"
reason = "Qualifies as capital improvement with certificate."
else:
classification = "taxable"
reason = "Likely capital improvement but no certificate provided."
else:
classification = "taxable"
reason = "Not clearly capital improvement; defaulting to taxable."
Relationship to other tools
- SiteTax determines classification, not invoice totals.
- Other tools should treat this output as a flag for applying tax, not as a pricing engine.
UI expectations
- Always show the
reasonstring. Avoid hidden logic. - Allow manual override but visually mark it as override.
- Provide a simple way to confirm that a certificate was collected.
Known gaps / future considerations
- Mixed-scope jobs (part repair, part improvement).
- Edge cases like material-only deliveries.
- Job templates for common scenarios: roofs, windows, HVAC, paint, kitchens.
Update this doc whenever rules or assumptions change.