The Campground Contracts report tracks site agreements — which reservations have a contract attached, which version the guest signed, when it expires, and whether it has actually been signed yet. It is how you keep on top of signature chasing and seasonal renewals without opening reservations one at a time.
This article assumes you already know the basics of the Sharper reporting module — the Name, Token, Subtotal, column picker, and filter fields. For a full walkthrough of the reporting form itself, see the Sharper Reporting Reference Guide. This article only covers what's specific to the Contracts report.
Why This Report Matters
A site agreement is what makes the rest of your terms enforceable — park rules, liability, quiet hours, and what happens if a guest stops paying. An unsigned agreement on an occupied seasonal site is a real exposure, and it is easy to miss when signature chasing happens by memory. Use this report to:
Find guests who are on site but have not signed their agreement
Build a renewals list from contract expiration dates, well before the season turns over
Confirm which version of your agreement each guest actually signed, after you revise your terms
See who signed electronically and who signed on paper in the office
Only Reservations With a Contract Appear
Rows come from contract records attached to reservations, which produces a result that catches people out:
A reservation that was never issued a contract at all does not appear in this report — not as an unsigned row, not as a blank one. So this report shows you unsigned contracts, but it cannot show you missing ones. To find reservations with no contract, run the Campground Reservations report and compare, or check that your contract is set to attach automatically for that booking type.
Building a Contracts Report
Go to Reports → Campground → Contracts in the left sidebar.
If a shipped report is close to what you need, use the ⋯ menu → Copy first — shipped reports can only be edited by the Sharper team.
Otherwise click + New and give it a Name, such as "Unsigned Site Agreements."
Add the columns below from the Available panel.
Optionally turn on Dashboard so the signature-chasing list is one click away.
Click Save, then Get Report to run it.
Recommended Columns
Field | What It Shows |
Contract Name | Which agreement was issued |
Contract Version | The version the guest was given. Essential after you revise your park rules — it tells you who is still on the old wording. |
Contract Start Date, Contract Expiration Date | The term of the agreement. Expiration date is the column to build seasonal renewals from. |
Contract Created Date | When the contract was generated — compare against the signing dates to see how long signatures are taking |
Contract E-sign Completed | Whether the electronic signature process finished. This is the primary "is it signed?" column. |
Contract E-sign Date | When it was signed electronically |
Contract Print Sign Date | When a paper copy was signed and recorded. A guest can legitimately sign on paper with no e-sign date at all — check both before chasing. |
Contract Email | The address the contract was sent to — the first thing to check when a guest says they never received it |
Customer Name, Cust Email, Cust Phone | Who to chase |
Unit Name, Group Name | The space the contract covers and its loop |
Vehicle Name, Vehicle License Plate Number | The rig covered by the agreement |
Arrival Date, Departure Date, Reservation Status | The stay the contract belongs to, and whether it is still live |
Reservation Reference | The booking reference, for looking the reservation up |
Vehicle Insurance Expiration Date, Vehicle COI Received | Insurance status alongside contract status, where you require proof of coverage |
Subtotal, Tax, Total | The value of the reservation the contract covers |
Has Auto Pay | Whether payment is automated for this guest |
Note: Before treating a contract as unsigned, check both Contract E-sign Completed and Contract Print Sign Date. A guest who came into the office and signed on paper will show no e-sign completion, and chasing them for a signature they have already given is a poor guest experience.
Useful Filters
Genuinely unsigned: Field Contract E-sign Completed set to No, And Contract Print Sign Date set to is empty.
Unsigned on an active stay: add Reservation Status to the group above, set to your active status — this is your real exposure list.
Renewals due: Field Contract Expiration Date, operator Between, entering today and a date 60 or 90 days out.
Already expired but still on site: Contract Expiration Date operator < today, with an active reservation status.
Guests on an old version: Field Contract Version, operator < or not equal to your current version number.
Signed on paper: Field Contract Print Sign Date, set to is not empty.
The unsigned-on-an-active-stay filter is the one worth pinning to your dashboard — it is short, it is actionable, and it should ideally be empty.
