| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906 |
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Frequently Asked Questions — Tasmanian Planning Scheme Assistant</title>
- <meta name="description" content="Answers to common questions about the Tasmanian Planning Scheme Assistant — how it works, what data it uses, BYOK, privacy, and more.">
- <link rel="canonical" href="https://tasplanning.report/faq">
- <meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1">
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap" rel="stylesheet">
- <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
- <link rel="icon" href="/favicon.ico">
- <link rel="apple-touch-icon" href="/image/apple-touch-icon.png">
- <!-- FAQ structured data -->
- <script type="application/ld+json">
- {
- "@context": "https://schema.org",
- "@type": "FAQPage",
- "mainEntity": [
- {
- "@type": "Question",
- "name": "What sources does the assistant use?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "The assistant retrieves answers from the Tasmanian State Planning Provisions (SPPs) and your selected council's Local Provisions Schedule (LPS). Every answer cites the source file and page number so you can verify it directly in the TPSO viewer."
- }
- },
- {
- "@type": "Question",
- "name": "Who is this tool for?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "It is designed for Tasmanian planners, building designers, architects, and consultants who need fast, cited answers from the planning scheme. It is also useful for homeowners and property owners wanting to understand what applies to their land."
- }
- },
- {
- "@type": "Question",
- "name": "Is the information legally accurate?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "The assistant retrieves and summarises content directly from the official planning scheme documents. However, it is an information aid only — not professional advice. Always verify answers against the official TPSO viewer and consult a qualified planning professional for development decisions."
- }
- },
- {
- "@type": "Question",
- "name": "How current is the planning scheme data?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "The planning scheme documents in our database are updated periodically, but amendments can occur at any time. Always check the official Tasmanian Planning Scheme Online (TPSO) viewer for the most current version of any provision."
- }
- },
- {
- "@type": "Question",
- "name": "Is my data private?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "Queries are logged with anonymised session identifiers and hashed IP addresses for service improvement. If you use the BYOK feature, your API key and queries go directly from your browser to your chosen provider and never touch our servers."
- }
- },
- {
- "@type": "Question",
- "name": "Can I use my own API key?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "Yes. The Bring Your Own Key (BYOK) feature lets you use Claude, GPT-4o, or Grok as the AI. Your Qdrant vector search still runs on our servers for clause retrieval, but the final answer is generated by your chosen provider using your own key — never stored on our servers."
- }
- },
- {
- "@type": "Question",
- "name": "What is the difference between SPPs and LPS?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "State Planning Provisions (SPPs) are the statewide rules that apply across all of Tasmania. Local Provisions Schedules (LPS) are council-specific schedules that modify or add to the SPPs for each local government area. The assistant applies both in the correct order of authority."
- }
- },
- {
- "@type": "Question",
- "name": "Which councils are supported?",
- "acceptedAnswer": {
- "@type": "Answer",
- "text": "The assistant supports all Tasmanian councils that have adopted the Tasmanian Planning Scheme. Select your council in the scope dropdown to restrict answers to that council's LPS alongside the SPPs."
- }
- }
- ]
- }
- </script>
- <style>
- :root {
- --bg: #0b0f0e;
- --bg-1: #111614;
- --bg-2: #181e1b;
- --bg-card: #141a17;
- --border: rgba(255,255,255,0.07);
- --border-hover: rgba(255,255,255,0.14);
- --accent: #2ddc8a;
- --accent-dim: rgba(45,220,138,0.10);
- --accent-glow: rgba(45,220,138,0.22);
- --text-primary: #eaf0ec;
- --text-secondary:#8fa899;
- --text-muted: #4f6459;
- --serif: 'DM Serif Display', Georgia, serif;
- --sans: 'DM Sans', system-ui, sans-serif;
- --radius: 10px;
- --radius-lg: 16px;
- --transition: 0.18s cubic-bezier(0.4,0,0.2,1);
- }
- *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
- html { scroll-behavior: smooth; }
- body {
- font-family: var(--sans);
- background: var(--bg);
- color: var(--text-primary);
- font-size: 16px;
- line-height: 1.7;
- -webkit-font-smoothing: antialiased;
- min-height: 100vh;
- }
- ::selection { background: var(--accent); color: #0b0f0e; }
- a { color: var(--accent); text-decoration: none; transition: opacity var(--transition); }
- a:hover { opacity: 0.8; }
- /* ── Nav ─────────────────────────────────────────────────────────── */
- .site-nav {
- position: sticky; top: 0; z-index: 100;
- background: rgba(11,15,14,0.92);
- backdrop-filter: blur(12px);
- border-bottom: 1px solid var(--border);
- }
- .nav-inner {
- max-width: 960px; margin: 0 auto; padding: 0 24px;
- display: flex; align-items: center; justify-content: space-between;
- height: 56px;
- }
- .nav-brand {
- display: flex; align-items: center; gap: 9px;
- font-size: 0.88rem; font-weight: 500;
- color: var(--text-primary); text-decoration: none;
- }
- .nav-links { display: flex; align-items: center; gap: 4px; }
- .nav-links a {
- font-size: 0.82rem; color: var(--text-secondary);
- padding: 5px 11px; border-radius: 5px; text-decoration: none;
- transition: all var(--transition);
- }
- .nav-links a:hover { color: var(--text-primary); background: rgba(255,255,255,0.05); opacity: 1; }
- .nav-links a.active { color: var(--accent); }
- /* ── Page layout ─────────────────────────────────────────────────── */
- .page-wrap { max-width: 960px; margin: 0 auto; padding: 56px 24px 96px; }
- /* ── Header ──────────────────────────────────────────────────────── */
- .page-header { margin-bottom: 56px; max-width: 620px; }
- .page-eyebrow {
- display: inline-flex; align-items: center; gap: 7px;
- font-size: 0.72rem; font-weight: 500; letter-spacing: 0.12em;
- text-transform: uppercase; color: var(--accent); margin-bottom: 16px;
- }
- .page-eyebrow::before {
- content: ''; display: block; width: 18px; height: 1px; background: var(--accent);
- }
- .page-header h1 {
- font-family: var(--serif); font-size: clamp(2rem, 4vw, 2.8rem);
- font-weight: 400; line-height: 1.15; margin-bottom: 14px;
- }
- .page-header h1 em { font-style: italic; color: var(--accent); }
- .page-header p { color: var(--text-secondary); font-size: 0.95rem; max-width: 500px; }
- /* ── Category filter tabs ────────────────────────────────────────── */
- .cat-tabs {
- display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px;
- }
- .cat-tab {
- display: inline-flex; align-items: center; gap: 6px;
- padding: 6px 16px; border-radius: 999px; font-size: 0.8rem;
- border: 1px solid var(--border); background: var(--bg-card);
- color: var(--text-secondary); cursor: pointer;
- transition: all var(--transition); font-family: var(--sans);
- }
- .cat-tab:hover { border-color: var(--border-hover); color: var(--text-primary); }
- .cat-tab.active { background: var(--accent-dim); border-color: rgba(45,220,138,0.3); color: var(--accent); }
- .cat-tab i { font-size: 0.82rem; }
- /* ── Two-column layout ───────────────────────────────────────────── */
- .faq-layout {
- display: grid; grid-template-columns: 220px 1fr; gap: 40px;
- }
- @media(max-width: 768px) { .faq-layout { grid-template-columns: 1fr; } }
- /* ── Sidebar nav ─────────────────────────────────────────────────── */
- .faq-sidebar { position: sticky; top: 76px; align-self: start; }
- .sidebar-label {
- font-size: 0.68rem; font-weight: 500; letter-spacing: 0.1em;
- text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px;
- display: block;
- }
- .sidebar-nav { display: flex; flex-direction: column; gap: 2px; }
- .sidebar-link {
- display: flex; align-items: center; gap: 8px;
- padding: 7px 10px; border-radius: var(--radius);
- font-size: 0.8rem; color: var(--text-muted); text-decoration: none;
- transition: all var(--transition);
- }
- .sidebar-link:hover { background: var(--bg-card); color: var(--text-secondary); opacity: 1; }
- .sidebar-link.active { background: var(--accent-dim); color: var(--accent); }
- .sidebar-link i { font-size: 0.85rem; width: 16px; flex-shrink: 0; }
- /* ── FAQ groups ──────────────────────────────────────────────────── */
- .faq-group { margin-bottom: 48px; }
- .faq-group:last-child { margin-bottom: 0; }
- .group-header {
- display: flex; align-items: center; gap: 10px;
- margin-bottom: 20px; padding-bottom: 14px;
- border-bottom: 1px solid var(--border);
- }
- .group-icon {
- width: 34px; height: 34px; border-radius: 8px;
- background: var(--accent-dim); border: 1px solid rgba(45,220,138,0.2);
- display: flex; align-items: center; justify-content: center;
- color: var(--accent); font-size: 0.9rem; flex-shrink: 0;
- }
- .group-title {
- font-family: var(--serif); font-size: 1.25rem; font-weight: 400;
- color: var(--text-primary);
- }
- .group-count {
- font-size: 0.72rem; color: var(--text-muted);
- background: var(--bg-2); border: 1px solid var(--border);
- border-radius: 999px; padding: 2px 8px; margin-left: auto;
- }
- /* ── FAQ items (accordion) ───────────────────────────────────────── */
- .faq-item {
- border: 1px solid var(--border); border-radius: var(--radius);
- margin-bottom: 8px; overflow: hidden;
- transition: border-color var(--transition);
- }
- .faq-item:hover { border-color: var(--border-hover); }
- .faq-item.open { border-color: rgba(45,220,138,0.25); }
- .faq-question {
- width: 100%; background: var(--bg-card); border: none;
- padding: 16px 18px; display: flex; align-items: center;
- gap: 12px; cursor: pointer; text-align: left;
- font-family: var(--sans); transition: background var(--transition);
- }
- .faq-question:hover { background: var(--bg-2); }
- .faq-item.open .faq-question { background: var(--bg-2); }
- .faq-q-text {
- font-size: 0.9rem; font-weight: 500; color: var(--text-primary);
- flex: 1; line-height: 1.4;
- }
- .faq-chevron {
- color: var(--text-muted); font-size: 0.8rem; flex-shrink: 0;
- transition: transform var(--transition);
- }
- .faq-item.open .faq-chevron { transform: rotate(180deg); color: var(--accent); }
- .faq-answer {
- display: none; padding: 0 18px 18px;
- background: var(--bg-2); border-top: 1px solid var(--border);
- }
- .faq-item.open .faq-answer { display: block; }
- .faq-answer p {
- color: var(--text-secondary); font-size: 0.88rem; line-height: 1.75;
- margin-top: 14px; margin-bottom: 10px;
- }
- .faq-answer p:last-child { margin-bottom: 0; }
- .faq-answer ul {
- list-style: none; display: flex; flex-direction: column; gap: 8px;
- padding: 0; margin: 10px 0;
- }
- .faq-answer ul li {
- display: flex; align-items: flex-start; gap: 9px;
- color: var(--text-secondary); font-size: 0.88rem;
- }
- .faq-answer ul li::before {
- content: ''; width: 4px; height: 4px; border-radius: 50%;
- background: var(--accent); flex-shrink: 0; margin-top: 8px;
- }
- .faq-answer code {
- background: var(--bg-card); border: 1px solid var(--border);
- border-radius: 4px; padding: 1px 6px;
- font-size: 0.8em; color: var(--accent); font-family: ui-monospace, monospace;
- }
- .faq-answer a { color: var(--accent); }
- .faq-answer strong { color: var(--text-primary); font-weight: 500; }
- /* ── Still have questions CTA ────────────────────────────────────── */
- .still-questions {
- background: var(--bg-1); border: 1px solid var(--border);
- border-radius: var(--radius-lg); padding: 36px 40px;
- text-align: center; margin-top: 56px;
- }
- .still-questions h2 {
- font-family: var(--serif); font-size: 1.6rem; font-weight: 400;
- margin-bottom: 10px;
- }
- .still-questions h2 em { font-style: italic; color: var(--accent); }
- .still-questions p { color: var(--text-secondary); font-size: 0.9rem; margin-bottom: 24px; }
- .btn-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
- .btn {
- display: inline-flex; align-items: center; gap: 7px;
- padding: 10px 22px; border-radius: var(--radius);
- font-family: var(--sans); font-size: 0.88rem; font-weight: 500;
- cursor: pointer; transition: all var(--transition); text-decoration: none;
- }
- .btn-primary { background: var(--accent); color: #0b0f0e; border: none; }
- .btn-primary:hover { background: #3bf59a; transform: translateY(-1px); opacity: 1; }
- .btn-outline {
- background: transparent; color: var(--text-secondary);
- border: 1px solid var(--border-hover);
- }
- .btn-outline:hover { border-color: var(--accent); color: var(--accent); opacity: 1; }
- /* ── Footer ──────────────────────────────────────────────────────── */
- .site-footer { border-top: 1px solid var(--border); padding: 28px 0; margin-top: 80px; }
- .footer-inner {
- max-width: 960px; margin: 0 auto; padding: 0 24px;
- display: flex; flex-wrap: wrap; align-items: center;
- justify-content: space-between; gap: 16px;
- }
- .footer-copy { font-size: 0.8rem; color: var(--text-muted); }
- .footer-links { display: flex; align-items: center; gap: 20px; }
- .footer-links a {
- font-size: 0.8rem; color: var(--text-muted); text-decoration: none;
- transition: color var(--transition);
- }
- .footer-links a:hover { color: var(--text-secondary); opacity: 1; }
- ::-webkit-scrollbar { width: 5px; }
- ::-webkit-scrollbar-track { background: transparent; }
- ::-webkit-scrollbar-thumb { background: var(--border-hover); border-radius: 3px; }
- </style>
- </head>
- <body>
- <!-- ── Nav ──────────────────────────────────────────────────────────── -->
- <nav class="site-nav">
- <div class="nav-inner">
- <a class="nav-brand" href="/">
- <svg width="22" height="22" viewBox="0 0 28 28" fill="none">
- <rect width="28" height="28" rx="6" fill="var(--accent-dim)" stroke="rgba(45,220,138,0.25)" stroke-width="1"/>
- <path d="M8 20 L14 8 L20 20" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
- <path d="M10.5 16 L17.5 16" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/>
- </svg>
- Tasmanian Planning Scheme
- </a>
- <div class="nav-links">
- <a href="/">Home</a>
- <a href="/local_state-planning-scheme.php">Assistant</a>
- <a href="/faq" class="active">FAQ</a>
- <a href="/terms">Terms</a>
- <a href="/privacy">Privacy</a>
- </div>
- </div>
- </nav>
- <!-- ── Page ──────────────────────────────────────────────────────────── -->
- <div class="page-wrap">
- <div class="page-header">
- <div class="page-eyebrow">Help</div>
- <h1>Frequently asked <em>questions</em></h1>
- <p>Everything you need to know about the Tasmanian Planning Scheme Assistant — how it works, what it covers, and how to get the most out of it.</p>
- </div>
- <div class="faq-layout">
- <!-- Sidebar -->
- <aside class="faq-sidebar">
- <span class="sidebar-label">Categories</span>
- <nav class="sidebar-nav" id="sidebarNav">
- <a class="sidebar-link active" href="#getting-started" data-group="getting-started">
- <i class="bi bi-rocket"></i> Getting started
- </a>
- <a class="sidebar-link" href="#planning-scheme" data-group="planning-scheme">
- <i class="bi bi-map"></i> Planning scheme
- </a>
- <a class="sidebar-link" href="#accuracy" data-group="accuracy">
- <i class="bi bi-shield-check"></i> Accuracy & limits
- </a>
- <a class="sidebar-link" href="#byok" data-group="byok">
- <i class="bi bi-key"></i> Bring your own key
- </a>
- <a class="sidebar-link" href="#reports" data-group="reports">
- <i class="bi bi-file-earmark-text"></i> Reports & export
- </a>
- <a class="sidebar-link" href="#privacy-data" data-group="privacy-data">
- <i class="bi bi-lock"></i> Privacy & data
- </a>
- <a class="sidebar-link" href="#pro" data-group="pro">
- <i class="bi bi-stars"></i> Pro & pricing
- </a>
- </nav>
- </aside>
- <!-- FAQ content -->
- <div id="faqContent">
- <!-- Getting started -->
- <div class="faq-group" id="getting-started">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-rocket"></i></div>
- <h2 class="group-title">Getting started</h2>
- <span class="group-count">5 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What is the Tasmanian Planning Scheme Assistant?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>It's an AI-powered assistant that answers questions about the Tasmanian Planning Scheme — including zones, overlays, setbacks, acceptable solutions, and performance criteria. Every answer cites the exact SPP or LPS clause it came from so you can verify it directly.</p>
- <p>It uses retrieval-augmented generation (RAG): when you ask a question, it searches a vector database of official planning documents, pulls the most relevant clauses, and feeds them to a language model to generate a cited answer.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Who is it designed for?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Primarily for Tasmanian planners, building designers, architects, and consultants who need fast, cited answers from the planning scheme without manually searching through the TPSO viewer.</p>
- <p>It's also useful for homeowners, developers, and property owners who want to understand what zones, codes, and overlays apply to their land before engaging a professional.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Do I need to sign up or create an account?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>No. The assistant is free to use with no signup required. Just open the page and start asking questions. A session identifier is stored in your browser's local storage to maintain conversation history, but no account or email is needed.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What's the best way to phrase my questions?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Use Tasmanian planning terminology where possible — the assistant is tuned to recognise these terms and will retrieve more precise clauses. Good examples:</p>
- <ul>
- <li>"What are the acceptable solutions for front setbacks in the Village Zone?"</li>
- <li>"What is the car parking rate for a medical centre? Cite the clause."</li>
- <li>"List the overlays that apply to a coastal site and which clauses to check."</li>
- <li>"Summarise the Use Class for a café under the Tasmanian Planning Scheme."</li>
- </ul>
- <p>You can also paste a property address or PID and ask about the zones and overlays that apply to it — use the <a href="/site-report.php">Property Lookup</a> tool for this.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What are the different tools on the site?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <ul>
- <li><strong>Planning Assistant</strong> — free-form chat interface for asking questions about zones, codes, setbacks, and acceptable solutions.</li>
- <li><strong>Property Lookup</strong> — enter a Tasmanian address to fetch parcel details, zones, overlays, and codes via the LIST/ArcGIS service.</li>
- <li><strong>Section Builder</strong> — generate a full planning report section by section using AI, then export to Word or Google Docs.</li>
- </ul>
- </div>
- </div>
- </div>
- <!-- Planning scheme -->
- <div class="faq-group" id="planning-scheme">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-map"></i></div>
- <h2 class="group-title">Planning scheme</h2>
- <span class="group-count">5 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What documents does the assistant cover?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Currently the assistant covers:</p>
- <ul>
- <li><strong>State Planning Provisions (SPPs)</strong> — the statewide rules applying across all of Tasmania.</li>
- <li><strong>Local Provisions Schedules (LPS)</strong> — the council-specific schedules for each Tasmanian local government area.</li>
- </ul>
- <p>National Construction Code (NCC) and Australian Standards integration are coming soon — join the waitlist to be notified when they're available.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What is the difference between SPPs and LPS?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p><strong>State Planning Provisions (SPPs)</strong> are the statewide rules that apply across all Tasmanian councils. They cover zone purposes, use classes, code requirements, and the structure of the planning scheme.</p>
- <p><strong>Local Provisions Schedules (LPS)</strong> are council-specific schedules that modify or add to the SPPs for each local government area. They set local zone maps, overlay maps, and specific variations to the standard provisions.</p>
- <p>The assistant applies both in the correct order of authority — SPPs first, then LPS modifications. Select your council in the scope dropdown to include that council's LPS in the search.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Which councils are supported?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>All Tasmanian councils that have transitioned to the Tasmanian Planning Scheme are supported. The council dropdown in the assistant is populated live from the database — if a council appears in the list, its LPS is indexed.</p>
- <p>If you don't select a council, the assistant searches the SPPs only (statewide provisions).</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What is the "scope" setting in the assistant?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>The scope controls which documents are searched:</p>
- <ul>
- <li><strong>State + local</strong> — searches both the SPPs and your selected council's LPS. Best for most questions.</li>
- <li><strong>State only</strong> — searches the SPPs only, ignoring any LPS. Useful for statewide provisions.</li>
- <li><strong>Local only</strong> — searches only your selected council's LPS. Useful for council-specific variations.</li>
- <li><strong>Any</strong> — searches all indexed documents with no filter.</li>
- </ul>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What are Acceptable Solutions and Performance Criteria?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p><strong>Acceptable Solutions (A)</strong> are pre-defined standards that, if met, automatically satisfy the relevant planning requirement. No further justification is needed — compliance is straightforward.</p>
- <p><strong>Performance Criteria (P)</strong> are the underlying planning objectives. If you can't meet the Acceptable Solution, you can argue your proposal meets the Performance Criteria through design or other means — but this requires a permit and the consent of the planning authority.</p>
- <p>The assistant distinguishes between A and P in its answers and labels them clearly in tables.</p>
- </div>
- </div>
- </div>
- <!-- Accuracy & limits -->
- <div class="faq-group" id="accuracy">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-shield-check"></i></div>
- <h2 class="group-title">Accuracy & limits</h2>
- <span class="group-count">4 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">How accurate are the answers?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>The assistant retrieves content directly from official planning scheme documents — it doesn't generate clause numbers or standards from memory. Every answer cites the source file and page so you can verify it in the TPSO viewer.</p>
- <p>However, AI language models can still make errors in interpretation, miss relevant clauses, or apply provisions out of context. Always verify answers against the official TPSO viewer and consult a qualified planning professional before making development decisions.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">How current is the planning scheme data?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Planning scheme documents are updated in our database periodically. However, scheme amendments can occur at any time — councils regularly amend their LPS and the state can amend the SPPs.</p>
- <p>Always check the official <a href="https://tpso.planning.tas.gov.au" target="_blank" rel="noopener">Tasmanian Planning Scheme Online (TPSO)</a> viewer for the most current version of any provision before relying on it for a development decision.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Can I rely on answers for a planning permit application?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>No. The assistant is an information aid, not a substitute for professional advice. For a planning permit application you should:</p>
- <ul>
- <li>Verify all clauses against the official TPSO viewer.</li>
- <li>Check for recent amendments to the relevant scheme.</li>
- <li>Obtain advice from a qualified planning professional or your council's planning department.</li>
- <li>Commission any required technical assessments (traffic, bushfire, etc.).</li>
- </ul>
- <p>The Section Builder can help you draft a supporting planning report, but the final document should be reviewed by a qualified planner before submission.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What happens if the assistant can't find relevant clauses?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>If no relevant clauses are found in the database, the assistant will say so rather than making something up. It's instructed to only cite content that was actually retrieved — if the context doesn't support an answer, it will tell you it doesn't know.</p>
- <p>If you're getting "No context found" responses, try:</p>
- <ul>
- <li>Selecting a specific council in the scope dropdown.</li>
- <li>Rephrasing using more specific Tasmanian planning terms.</li>
- <li>Changing the scope to "Any" to search all documents.</li>
- </ul>
- </div>
- </div>
- </div>
- <!-- BYOK -->
- <div class="faq-group" id="byok">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-key"></i></div>
- <h2 class="group-title">Bring your own key</h2>
- <span class="group-count">4 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What is BYOK and how does it work?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>BYOK (Bring Your Own Key) lets you use your own API key from Claude (Anthropic), GPT-4o (OpenAI), or Grok (xAI) as the AI that generates answers.</p>
- <p>The retrieval step (searching the planning scheme database) still runs on our servers. But instead of sending the retrieved context to our hosted Ollama model, it's sent directly from your browser to your chosen provider using your key. This means:</p>
- <ul>
- <li>Your key is stored only in your browser's local storage — never on our servers.</li>
- <li>You can use more powerful models (Claude Sonnet, GPT-4o) for better answers.</li>
- <li>You pay your provider directly at their standard rates.</li>
- </ul>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Which providers are supported?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <ul>
- <li><strong>Anthropic Claude</strong> — Claude Sonnet 4.5 (recommended), Haiku 4.5, Opus 4.5</li>
- <li><strong>OpenAI</strong> — GPT-4o mini (recommended), GPT-4o, GPT-4.1 mini</li>
- <li><strong>xAI Grok</strong> — Grok 3 mini, Grok 3</li>
- <li><strong>Ollama (local)</strong> — your own local Ollama instance for full privacy</li>
- </ul>
- <p>Configure and test your key at <a href="/byok-settings.php">API Key Settings</a>.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Is my API key secure?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Your key is stored only in your browser's <code>localStorage</code> and is sent directly to the provider's API from your browser — it never passes through our servers.</p>
- <p>The key is visible in your browser's DevTools Network tab when a request is made — this is unavoidable with browser-side key storage. We recommend:</p>
- <ul>
- <li>Setting a monthly spending limit in your provider's dashboard.</li>
- <li>Using a dedicated key for this tool, not your main API key.</li>
- <li>Clearing the key from settings if you're on a shared computer.</li>
- </ul>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Which model gives the best planning answers?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p><strong>Claude Sonnet 4.5</strong> (Anthropic) consistently produces the most accurate and well-structured planning responses, particularly for complex clause interpretation and table generation.</p>
- <p><strong>GPT-4o mini</strong> is a good balance of speed and quality at lower cost. <strong>Grok 3 mini</strong> is also solid for straightforward questions.</p>
- <p>The built-in <strong>Ollama / llama3.1:8b</strong> model is free and sufficient for most queries, though it may be slower and less precise on complex assessments.</p>
- </div>
- </div>
- </div>
- <!-- Reports & export -->
- <div class="faq-group" id="reports">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-file-earmark-text"></i></div>
- <h2 class="group-title">Reports & export</h2>
- <span class="group-count">4 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">How do I generate a planning report?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>There are two ways:</p>
- <ul>
- <li><strong>Property Lookup → Generate AI report</strong> — look up a property address to get its zones and overlays, then click "Generate AI report" for a quick overview.</li>
- <li><strong>Section Builder</strong> — the more powerful option. Provides the site context (address, zones, proposal) and select which report sections to generate (Introduction, Zoning Assessment, Code Assessment, Conclusion, etc.). Each section is drafted separately and can be edited before export.</li>
- </ul>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What export formats are available?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <ul>
- <li><strong>Google Docs</strong> — creates a new document in your Google Drive via OAuth. Includes a cover page and contents.</li>
- <li><strong>Word (.docx)</strong> — downloads a formatted Word document with cover page, table of contents, and body sections.</li>
- <li><strong>Markdown (.md)</strong> — raw Markdown for use in other tools or version control.</li>
- </ul>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Can I edit the generated sections before export?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Yes. Each section in the Section Builder has an editable textarea. Click into any section and edit the Markdown directly — your changes are saved automatically and included when you click "Assemble" and export. You can also regenerate individual sections if the first draft isn't quite right.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">How do I pass property data from the lookup to the report builder?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>After looking up a property in the <a href="/site-report.php">Property Lookup</a> tool, click <strong>"Open section builder"</strong>. This writes the property data (address, council, zones, codes, area) to your browser's local storage and opens the Section Builder in a new tab, which automatically reads and loads that context.</p>
- <p>If the context doesn't load automatically, click "Import from page" or paste the JSON directly into the context field.</p>
- </div>
- </div>
- </div>
- <!-- Privacy & data -->
- <div class="faq-group" id="privacy-data">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-lock"></i></div>
- <h2 class="group-title">Privacy & data</h2>
- <span class="group-count">3 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Are my questions stored?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Yes — queries are logged to a telemetry database with the following fields: timestamp, anonymised session ID, hashed IP address (not reversible), query text, scope, latency, and which source chunks were retrieved. Raw query text is retained for up to 90 days for service improvement, then deleted.</p>
- <p>In BYOK mode, the query goes from your browser directly to your chosen provider — we only log the retrieval metadata, not the full interaction with the external LLM.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Do you use my queries to train AI models?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>We do not currently use query logs to fine-tune or train AI models. Logs are used only for service improvement, debugging, and usage analytics. In BYOK mode, your provider's data policy applies to the portion of the interaction that goes to them.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What data is stored in my browser?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>The following are stored in your browser's <code>localStorage</code>:</p>
- <ul>
- <li>Session ID — a random identifier used to correlate your queries in logs.</li>
- <li>Chat history — your last 20 questions and answers, for display only.</li>
- <li>BYOK API keys — if you configure them (under API Key Settings).</li>
- <li>Property context — temporarily stored when passing data from Property Lookup to the Section Builder.</li>
- </ul>
- <p>You can clear all of this by clearing your browser's local storage or using your browser's "Clear site data" option.</p>
- </div>
- </div>
- </div>
- <!-- Pro & pricing -->
- <div class="faq-group" id="pro">
- <div class="group-header">
- <div class="group-icon"><i class="bi bi-stars"></i></div>
- <h2 class="group-title">Pro & pricing</h2>
- <span class="group-count">3 questions</span>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">Is the assistant free to use?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Yes — the core assistant, Property Lookup, and Section Builder are all free to use with no signup required. Rate limits apply to prevent abuse (20 requests per minute per IP).</p>
- <p>If you use the BYOK feature with your own API key, you pay your provider directly at their standard rates — we don't charge anything on top.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">What is the Pro plan?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>Pro is coming soon. It will allow you to generate a full supporting planning report from a single detailed brief — with zone summaries, overlay checks, A vs P tables, assessment notes, and export-ready sections, all in one step.</p>
- <p>Pro will also include higher rate limits, NCC and Australian Standards integration, and priority support. <a href="/#pro">Join the waitlist</a> to be notified when it launches and get early-access pricing.</p>
- </div>
- </div>
- <div class="faq-item">
- <button class="faq-question" onclick="toggle(this)">
- <span class="faq-q-text">When will NCC and Australian Standards be available?</span>
- <i class="bi bi-chevron-down faq-chevron"></i>
- </button>
- <div class="faq-answer">
- <p>NCC (National Construction Code) and Australian Standards integration are in development. They'll be shown alongside planning outputs but kept clearly separate — NCC covers building controls, not planning provisions.</p>
- <p><a href="/#pro">Join the waitlist</a> to be notified when these features are released.</p>
- </div>
- </div>
- </div><!-- end pro group -->
- </div><!-- end faqContent -->
- </div><!-- end faq-layout -->
- <!-- Still have questions -->
- <div class="still-questions">
- <h2>Still have <em>questions?</em></h2>
- <p>Can't find what you're looking for? Try the assistant directly or get in touch.</p>
- <div class="btn-row">
- <a href="/local_state-planning-scheme.php" class="btn btn-primary">
- <i class="bi bi-stars"></i> Ask the assistant
- </a>
- <a href="mailto:hello@tasplanning.report" class="btn btn-outline">
- <i class="bi bi-envelope"></i> Contact us
- </a>
- </div>
- </div>
- </div>
- <!-- ── Footer ────────────────────────────────────────────────────────── -->
- <footer class="site-footer">
- <div class="footer-inner">
- <div class="footer-copy">© <span id="y"></span> Tasmanian Planning Scheme Assistant</div>
- <div class="footer-links">
- <a href="/">Home</a>
- <a href="/terms">Terms</a>
- <a href="/privacy">Privacy</a>
- <a href="/faq">FAQ</a>
- </div>
- </div>
- </footer>
- <script>
- 'use strict';
- // ── Accordion ─────────────────────────────────────────────────────────
- window.toggle = function(btn) {
- const item = btn.closest('.faq-item');
- const isOpen = item.classList.contains('open');
- // Close all
- document.querySelectorAll('.faq-item.open').forEach(el => el.classList.remove('open'));
- // Open clicked unless it was already open
- if (!isOpen) item.classList.add('open');
- };
- // ── Sidebar active on scroll ──────────────────────────────────────────
- const groups = document.querySelectorAll('.faq-group');
- const sideLinks= document.querySelectorAll('.sidebar-link');
- const observer = new IntersectionObserver(entries => {
- entries.forEach(entry => {
- if (entry.isIntersecting) {
- const id = entry.target.id;
- sideLinks.forEach(l => {
- l.classList.toggle('active', l.dataset.group === id);
- });
- }
- });
- }, { rootMargin: '-20% 0px -70% 0px' });
- groups.forEach(g => observer.observe(g));
- // Open first item in each group by default on load
- document.querySelectorAll('.faq-group').forEach(group => {
- group.querySelector('.faq-item')?.classList.add('open');
- });
- document.getElementById('y').textContent = new Date().getFullYear();
- </script>
- </body>
- </html>
|