Animal Shelter / Operations
FireAndStorm Property Owner Portal Research Report
Report summary
The accessible evidence for the current FireAndStorm demo is narrow but still useful. The demo landing page is a public “Choose Your Portal” screen that exposes four entry points: a Live Demo Workspace , Contractor Registration , Adjuster Registration , and Insurance Adjuster Login . The page explic
Key topics
- Animal Shelter / Operations
- Animal Shelter
- Operations
- AI
- Privacy
- Semantic Systems
- Research Archive
- Strategy
- Audit
Research provenance
For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.
Source availability: 52 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.
This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.
Full report
On this page
Executive summary
The accessible evidence for the current FireAndStorm demo is narrow but still useful. The demo landing page is a public “Choose Your Portal” screen that exposes four entry points: a Live Demo Workspace, Contractor Registration, Adjuster Registration, and Insurance Adjuster Login. The page explicitly states that the demo is read-only and that core transactional actions are unavailable, including create, update, delete, upload, approve, dispatch, invoice, payment, carrier submission, public packet links, and downloadable JSON. That means the public demo currently proves the existence of contractor- and adjuster-facing portal concepts, plus a seeded demo workspace, but it does not expose enough navigable content to verify deeper claim pages, field-level data models, or end-to-end workflow states. The planned production site at fireandstorm.com was not verifiable during this review because the fetch returned a 502-style failure.
Given that limitation, the safest conclusion is that a Property Owner portal should be added as a first-class role beside the existing Insurance Adjuster and Contractor roles, not as a light wrapper around either one. Owners need a camera-first, document-heavy, status-transparent experience: photo/video evidence capture, receipts and inventory support, inspection scheduling, estimate review, approval/dispute actions, and a clean payment/reimbursement view. That design direction is strongly supported by insurance-regulator and disaster-recovery guidance that emphasizes inventories, photos, receipts, status communication, and careful coordination before permanent repairs.
The recommended implementation approach is a shared claims core with portal-specific front ends, secured with OAuth 2.0, JWTs used conservatively and according to current best practices, RBAC plus object-level authorization checks, MFA / passkeys, secure file-upload controls, consistent audit logging, and PCI-scoped payment isolation if card payments are accepted. For insurance interoperability, align internal claim and document models to ACORD-style normalized structures even if the first release does not fully emit ACORD payloads externally.
Current demo findings
What was actually visible
The only reliably accessible FireAndStorm screen during this review was the public portal chooser. It brands the site as a Professional portal, titles the page Choose Your Portal, and describes three role-specific actions plus a live demo workspace. The copy indicates that the read-only demo workspace contains seeded sample claim workflows, that Contractor Registration is for onboarding using business contact details only, that Adjuster Registration is for read-only adjuster verification, and that Insurance Adjuster Login is for reviewing verified evidence read-only after verification.
The page also defines an unusually explicit “demo boundary.” It says the seeded demo pages are read-only and that the following are unavailable: create, update, delete, upload, approve, dispatch, invoice, payment, carrier submission, public packet links, and downloadable JSON. This is important because it implies the intended production system likely includes many of those behaviors, even though they were deliberately disabled in the public demo.
The contractor, adjuster registration, and adjuster login URLs were reachable as routes, but the crawler did not surface distinct forms or downstream content from them. In practice, that means the deeper route content was either the same shell content, client-rendered in a way the tool could not expose, or otherwise inaccessible. The production domain could not be validated because the fetch failed.
Inventory of visible features, roles, models, and workflows
| Area | Verified from demo | Status |
|---|---|---|
| Public entry page | “Professional portal” landing page with “Choose Your Portal.” | Verified |
| User roles explicitly visible | Contractor, Insurance Adjuster. Property Owner is not present in the demo navigation. | Verified |
| Demo workspace | “Live Demo Workspace” described as read-only and seeded with sample claim workflows. | Verified, inner pages inaccessible |
| Contractor workflow | “Contractor Registration” for onboarding with business contact details only. | Verified at label level |
| Adjuster workflow | “Adjuster Registration” for read-only adjuster verification; “Insurance Adjuster Login” for verified evidence review after verification. | Verified at label level |
| Claim model presence | Seeded claim workflows are mentioned, so a claim object or workflow concept exists. | Inferred from page copy |
| Evidence / document model presence | “Verified evidence” is explicitly mentioned for adjuster review. | Inferred from page copy |
| Transaction features | Create/update/delete/upload/approve/dispatch/invoice/payment/carrier submission/public packet links/downloadable JSON are explicitly unavailable in demo. | Verified as disabled |
| Production site | Planned production site could not be validated; fetch failed. | Inaccessible |
What remains unspecified
The following elements could not be validated from the accessible demo and should therefore be treated as unspecified, not assumed: claim status taxonomy, actual dashboard design, forms and field lists, document categories, message center behavior, inspection scheduling UI, estimate data structure, invoice or payment flows, carrier integrations, admin roles, audit-log UX, mobile behavior, accessibility conformance, and actual API contracts. That is not a minor caveat; it materially shapes the design work because the Property Owner portal will need to establish some of these conventions rather than merely mirror verified existing ones.
Recommended Property Owner portal
A Property Owner portal should be designed for both residential and commercial owners, with the interface adapting to claim type rather than splitting into two separate systems initially. Regulator and disaster guidance consistently emphasize that claimants need to maintain inventories, capture photos and videos, save receipts, document structural damage and damaged contents, and coordinate repairs carefully with insurers and adjusters. Those recommendations map directly to owner-portal requirements.
Comprehensive feature set
| Capability domain | Recommended owner features | Why it matters |
|---|---|---|
| Authentication and account management | Self-service registration by claim invitation, email magic link for first activation, password + MFA, passkey enrollment, account recovery, delegated household/business access, claim-scoped invited users, profile and preferred contact methods | Strong but usable authentication is important for sensitive insurance and payment data; MFA and modern authenticators materially improve resistance to account compromise. |
| Authorization | Owner can view only claims, properties, files, messages, schedules, and payments tied to their own ownership or explicit delegation; role supports residential owner, commercial owner, assistant/bookkeeper/property manager delegates | Portal security must enforce object-level and function-level authorization, not only menu-level hiding. |
| Dashboard | Claim cards, status timeline, next required action, unread message count, latest estimate, latest appointment, payment summary, claim health alerts, policy/claim reference IDs, emergency advice, outstanding document checklist | Owners need immediate clarity on “where my claim stands” and “what I need to do next.” Documentation and status visibility are core to claims guidance. |
| Claim status and timeline | Clear milestones such as Reported, Under Review, Inspection Scheduled, Estimate In Review, Approved, Work Scheduled, In Repair, Invoice Submitted, Payment Pending, Closed, Reopened, Disputed | Converts internal events into customer-readable progress and reduces avoidable calls and confusion. |
| Property and coverage view | Property profile, address(es), building/unit list, occupancy, lienholder/mortgage info, emergency contacts, claim type, peril, coverage summary, deductible, additional living expense or temporary business displacement indicators | Residential and commercial owners need different property structures, but a shared property model can support both. ALE-style visibility is common in post-disaster guidance. |
| Photo, video, and document upload | Camera-first mobile upload, drag-and-drop desktop upload, bulk upload, receipt capture, inventory imports, serial number entry, OCR-assisted tagging if added later, document versioning, malware scanning, content-type validation, immutable original archive | Owners are frequently instructed to provide photos, videos, serial numbers, samples, estimates, and receipts. Upload security must be strong because file upload is a high-risk feature. |
| Messaging and collaboration | Threaded secure messaging, @mentions by role, attachment support, read receipts, owner questions, adjuster requests for information, contractor clarifications, system messages separated from human conversation | Owners should not have to rely on ad hoc email chains to manage high-stakes claim communication. Regulator guidance emphasizes contact details and records of communication. |
| Scheduling | Inspection proposals, contractor visit windows, calendar confirmations, reschedule/cancel, arrival ETA, occupant access notes, safety warnings, SMS/email reminders, timezone-safe timestamps | Owners should be able to confirm visits and provide access conditions without phone-tag. |
| Estimates and approvals | Side-by-side estimate review, scope items, line-item explanations, owner comments, approve/reject/request revision, commercial multi-site rollups, e-sign acceptance, change-order review | Owners need a controlled mechanism to accept or question proposed work and costs before repair progresses. |
| Payments and reimbursements | Payment timeline, method, amount, payee breakdown, deductible summary, check/EFT status, reimbursement receipt submission, invoice history, downloadable remittance statements | Receipts and reimbursement tracking are already part of claims best practice; owners need the same transparency for portal-driven payments. |
| Notifications | Email/SMS/push for claim status changes, document requests, schedule changes, estimate approvals needed, payment released, dispute updated, inactivity nudges | Keeps claim progress moving and reduces missed deadlines. |
| Privacy and consent | Explicit consent for sharing owner uploads with contractors, privacy notice, retention windows, delegated-access consent, communication preferences, recording/e-sign consent where applicable | Privacy risk should be managed intentionally and documented as part of the product design. |
| Mobile responsiveness | Fully responsive dashboard, one-handed upload and approval flows, offline-safe draft capture if possible, large touch targets, camera integration, compressed previews with original archival storage | Photo and receipt capture are inherently mobile-heavy claim behaviors. WCAG guidance is applicable to dynamic and mobile applications. |
| Accessibility | WCAG 2.2 AA target, keyboard support, screen-reader labels, error prevention for financial/legal actions, accessible contrast, captions/transcripts for video instructions, status updates announced accessibly | Accessibility is a standards requirement for modern portals, not a polish item. |
| Security and resilience | MFA / passkeys, short-lived sessions, device/session management, audit timeline, suspicious-login alerts, upload security controls, rate limiting, signed webhooks, encrypted storage, least privilege, immutable business audit events | Claims portals handle sensitive identity, financial, document, and property data and must be designed accordingly. |
Residential and commercial differences to handle in one portal
For residential owners, the portal should emphasize home inventory, room-by-room contents, livability, temporary housing / ALE documentation, and a simplified single-property experience. For commercial owners, it should add support for multiple buildings or suites, tenant/occupant coordination, business-contact delegates, rent-roll or income-impact attachments, and portfolio-style views. Those variants can share the same core claim, property, document, schedule, and payment abstractions if the data model is designed carefully from the start. FEMA, NFIP, and NAIC guidance already points to the importance of structured documentation, receipts, repair estimates, and staged claims handling; commercial claims add breadth, not a fundamentally different collaboration model.
Cross-portal operating model
Insurance guidance distinguishes the roles clearly enough to justify separate portal permissions. A carrier-side or independent insurance adjuster works for the insurer that is paying the claim, reviews what happened, inspects damage, and estimates payment. A public adjuster works for the claimant and should therefore be treated as a separate future role, not folded into the insurer-side adjuster portal. A contractor manages repair work. The property owner documents loss, coordinates access, reviews estimates, and receives repair/payment visibility. Those differences should drive the RBAC model, workflow initiators, and conflict rules.
Role comparison
| Role | Primary responsibilities | Visible data | Allowed actions |
|---|---|---|---|
| Property Owner | Report and document damage; answer information requests; approve/reject estimates; coordinate access; upload receipts/photos; review payment and closeout | Own claims; own properties; documents submitted by self and shared by adjuster/contractor; schedules; estimates; payment/remittance summaries; dispute history | Create owner-originated messages; upload evidence; confirm visits; approve/reject scope; submit supplemental documents; open disputes; view audit summary |
| Insurance Adjuster | Validate coverage-related claim handling; review evidence; request information; inspect/triage; approve or revise scopes; trigger payment milestones; close or reopen claim | Claims assigned to adjuster/team; all claim evidence; contractor estimates; owner communications; policy/claim identifiers; payment authorizations; audit trail | Request documents; set status; assign contractor; approve/reject estimate; propose settlement/payment actions; close/reopen claim; issue formal notes |
| Contractor | Inspect property; submit scope/estimate; schedule work; upload job photos; submit invoices/change orders; mark completion | Claims assigned to contractor; property access notes; scoped work items; owner-shared damage evidence; schedule windows; invoice/payment status relevant to contractor | Propose appointments; upload inspection and completion photos; create estimates; submit invoice/change order; message owner/adjuster within assigned claim |
Shared actions, fields, and audit requirements
| Workflow event | Initiator | Consumers | Shared fields | Required audit event | Conflict rule |
|---|---|---|---|---|---|
| Claim invite / portal activation | System / adjuster | Owner | claimId, ownerId, propertyId, invite token, expiration, communication channel | owner.invited | New invite invalidates prior unused invite |
| Damage evidence upload | Owner or contractor | Adjuster, contractor, owner | claimId, documentId, category, sourceRole, captureDateUtc, geotag opt-in, file hash, notes | document.uploaded | Original file immutable; corrections create new version |
| Document request | Adjuster | Owner | requestId, claimId, requestedItems, dueDateUtc, priority | document.requested | Latest open request supersedes duplicates but preserves history |
| Inspection scheduling | Adjuster or contractor | Owner | appointmentId, claimId, windowStartUtc, windowEndUtc, participants, accessNotes | schedule.proposed / schedule.confirmed | Owner confirmation required before “confirmed” |
| Estimate submission | Contractor | Adjuster, owner | estimateId, claimId, scopeLines, totals, taxes, attachments, validity date | estimate.submitted | Only one active “current estimate” per contractor per claim revision |
| Estimate approval or revision request | Adjuster; owner comment optional | Contractor, owner | decision, decisionReason, revisionRequested, approvedAmount | estimate.reviewed | Adjuster approval controls operational progression; owner rejection opens dispute/review |
| Invoice submission | Contractor | Adjuster, owner | invoiceId, claimId, line items, retainage, attachments | invoice.submitted | Invoice blocked if estimate not approved unless override reason logged |
| Payment release / reimbursement | Adjuster / finance system | Owner, contractor | paymentId, claimId, payee, amount, method, remittance reference | payment.released | Split-pay rules validated against approved scope and payee matrix |
| Dispute opened | Owner | Adjuster, contractor as needed | disputeId, reasonCode, narrative, attachments, target object | dispute.opened | Freeze closeout on disputed object until resolved or overridden |
| Claim closeout | Adjuster | Owner, contractor | closeDateUtc, disposition, final amount, satisfaction flag | claim.closed | Block if open disputes or required docs remain unresolved |
Recommended sequence
The first recommended sequence is the core owner-adjuster-contractor intake flow. It makes the owner portal the primary evidence-collection surface while keeping authority boundaries intact for the adjuster and contractor. That pattern matches the regulator guidance that owners should document damage thoroughly, the adjuster should inspect and estimate, and repair activity should follow documented review.
sequenceDiagram
autonumber
participant O as Property Owner
participant P as Owner Portal
participant A as Insurance Adjuster Portal
participant C as Contractor Portal
participant X as Claims Core
participant N as Notification Service
participant L as Audit Log
O->>P: Activate invite / sign in
P->>X: Create owner session
O->>P: Upload photos, receipts, notes
P->>X: Store evidence + metadata
X->>L: document.uploaded
X->>A: Notify new evidence
A->>X: Review claim + request inspection
X->>L: schedule.proposed
X->>N: Send owner scheduling request
O->>P: Confirm appointment window
P->>X: schedule.confirmed
X->>L: schedule.confirmed
A->>C: Assign contractor for field estimate
C->>X: Submit inspection findings + estimate
X->>L: estimate.submitted
X->>A: Estimate ready for review
X->>P: Owner can preview estimate status
The second recommended sequence covers estimate review, approval, dispute, repair, and payment. It intentionally separates owner consent from insurer authorization, which reduces ambiguity later if there is a pricing or scope disagreement.
sequenceDiagram
autonumber
participant O as Property Owner
participant A as Insurance Adjuster
participant C as Contractor
participant X as Claims Core
participant F as Finance/PSP
participant L as Audit Log
C->>X: Submit estimate revision
X->>L: estimate.submitted
A->>X: Approve estimate
X->>L: estimate.reviewed[approved]
X->>O: Notify owner estimate ready
O->>X: Accept estimate OR request revision
alt Owner accepts
X->>L: owner.accepted_scope
C->>X: Schedule repair + upload progress
X->>L: work.updated
C->>X: Submit invoice / completion package
X->>L: invoice.submitted
A->>X: Authorize payment
X->>F: Trigger payout / reimbursement
F-->>X: Payment result
X->>L: payment.released
X->>O: Payment/remittance visible
X->>C: Contractor payment status visible
else Owner disputes
X->>L: dispute.opened
A->>C: Request revision / clarification
C->>X: Submit changed scope
X->>L: estimate.submitted[revision]
end
Integration architecture, schemas, endpoints, and security
Integration pattern
The cleanest architecture is a shared claims core with three portal front ends: Owner, Adjuster, and Contractor. If the current adjuster and contractor portals are already separate applications, keep them, but put a single API gateway / authorization layer in front of a normalized claims domain and publish business events from that domain through a message bus or webhook dispatcher. The demo’s explicit mention of future capabilities such as carrier submission and downloadable JSON is a good signal that integration-friendly design should be part of the first owner-portal release, not postponed.
A standardization layer should normalize core entities such as Claim, Property, Party, Document, Estimate, Invoice, Payment, Appointment, and AuditEvent, and then map them outward as needed to carriers, restoration vendors, and downstream finance systems. ACORD exists precisely to facilitate faster, more accurate data exchange and more efficient workflows through standard data structures and forms, so aligning internal schemas with ACORD-style semantics will reduce future integration friction even if the UI remains custom.
Security baseline
The security model should combine OAuth 2.0 for delegated authorization, JWTs only where they provide a clear interoperability benefit, RBAC, and claim-level object authorization checks on every API that accepts an identifier. That last point is essential because OWASP’s API Security guidance highlights broken object-level authorization and broken function-level authorization as leading API risks. JWTs should follow current best-practice guidance, which exists because insecure JWT handling remains common enough to require a formal best-current-practices update.
For interactive web and mobile clients, use Authorization Code + PKCE, short-lived access tokens, refresh-token rotation, device/session management, and step-up authentication for sensitive actions such as payment-detail changes, estimate acceptance, or delegated-access grants. NIST’s current digital-identity guidance continues to frame authentication, federation, and assurance levels as separate but coordinated design concerns; FIDO passkeys are an excellent option for phishing-resistant customer sign-in where supported, with TOTP or authenticator-app MFA as a fallback.
Uploads should be isolated in object storage, scanned, hashed, versioned, and served through time-limited URLs rather than web-root exposure. OWASP’s file-upload guidance explicitly recommends allow-listed extensions, validating actual file type instead of trusting Content-Type, generating application-controlled file names, imposing size limits, and limiting upload permission to authorized users.
Logging should be application-aware, not just infrastructure-level. Consistent business and security event logging is necessary for dispute handling, forensic review, and insurer/vendor accountability. OWASP’s logging guidance emphasizes that application logs should be consistent and always include security-relevant events; this maps directly to claim-status changes, permission changes, uploads, approvals, webhook deliveries, and payment operations.
If the portal accepts card payments directly, PCI DSS applies. The safer pattern is to push payment entry to a hosted or tokenized payment service provider page so the claims portal sees only tokens and payment status, not raw account data. PCI SSC describes PCI DSS as the baseline of technical and operational requirements designed to protect payment account data.
Privacy controls should include explicit purpose limitation, delegated-access consent, document-sharing consent, retention rules, and data minimization. NIST’s Privacy Framework is specifically intended to help organizations identify and manage privacy risk while building products and services.
Recommended schemas
Claim summary
{
"claimId": "CLM-2026-004281",
"propertyId": "PRP-009173",
"ownerId": "OWN-22015",
"claimType": "property_damage",
"propertyUse": "residential",
"lossDateUtc": "2026-06-03T18:40:00Z",
"reportedDateUtc": "2026-06-04T01:12:14Z",
"peril": "wind_hail",
"status": "inspection_scheduled",
"policy": {
"policyNumberMasked": "HO3-*****-4821",
"deductibleAmount": 2500.00,
"currency": "USD"
},
"property": {
"address1": "123 Example St",
"city": "Chicago",
"region": "IL",
"postalCode": "60601",
"country": "US"
},
"assignedAdjuster": {
"partyId": "ADJ-7011",
"displayName": "Assigned Adjuster",
"contactChannel": "portal_message"
},
"nextActions": [
"confirm_inspection_window",
"upload_receipts_if_any"
]
}
Document
{
"documentId": "DOC-778201",
"claimId": "CLM-2026-004281",
"uploadedByRole": "property_owner",
"category": "damage_photo",
"subcategory": "roof_exterior",
"captureDateUtc": "2026-06-04T00:41:12Z",
"fileNameOriginal": "IMG_4018.HEIC",
"fileNameStored": "doc_778201.bin",
"mimeTypeDetected": "image/heic",
"sha256": "4f34d7f8d5d0fa6a9d8f6d3cbce2e8440d7c3d2f7b9b4f5a638e8c0b5f90c111",
"sizeBytes": 4281888,
"virusScanStatus": "clean",
"visibility": {
"owner": true,
"adjuster": true,
"contractor": true
},
"notes": "North slope shingles missing after storm."
}
Estimate review object
{
"estimateId": "EST-44191",
"claimId": "CLM-2026-004281",
"contractorId": "CTR-1035",
"version": 2,
"currency": "USD",
"lineItems": [
{
"lineId": "1",
"code": "ROOF-REMOVE",
"description": "Remove damaged shingles",
"quantity": 24,
"unit": "SQ",
"unitPrice": 95.00,
"amount": 2280.00
},
{
"lineId": "2",
"code": "ROOF-REPLACE",
"description": "Install replacement architectural shingles",
"quantity": 24,
"unit": "SQ",
"unitPrice": 245.00,
"amount": 5880.00
}
],
"totals": {
"subtotal": 8160.00,
"tax": 0.00,
"grandTotal": 8160.00
},
"review": {
"adjusterDecision": "approved",
"adjusterDecisionDateUtc": "2026-06-07T15:30:12Z",
"ownerDecision": "pending",
"ownerComment": null
}
}
Webhook event
{
"eventId": "evt_01JY1M8DFD4SMT08R5A9N4JQW1",
"eventType": "claim.status.changed",
"occurredAtUtc": "2026-06-07T15:31:02Z",
"tenantId": "fireandstorm-prod",
"claimId": "CLM-2026-004281",
"data": {
"previousStatus": "estimate_in_review",
"newStatus": "awaiting_owner_approval",
"actorRole": "insurance_adjuster",
"actorId": "ADJ-7011"
},
"signature": {
"alg": "hmac-sha256",
"keyId": "whk_2026_01",
"digest": "base64url-encoded-signature"
}
}
Required endpoint set
| Method | Endpoint | Purpose | Primary callers |
|---|---|---|---|
POST | /auth/invitations/activate | Activate owner claim invitation | Owner portal |
POST | /auth/token | OAuth token exchange / refresh | All portals |
GET | /claims | List claims in current principal scope | All portals |
GET | /claims/{claimId} | Fetch claim summary and role-filtered detail | All portals |
GET | /claims/{claimId}/timeline | Claim/audit timeline for customer-friendly status view | Owner, Adjuster |
POST | /claims/{claimId}/documents | Upload documents/photos/receipts | Owner, Contractor, Adjuster |
GET | /claims/{claimId}/documents | Query documents by category and role visibility | All portals |
POST | /claims/{claimId}/document-requests | Request missing evidence | Adjuster |
POST | /claims/{claimId}/messages | Add secure message | All portals |
GET | /claims/{claimId}/messages | Read thread | All portals |
POST | /claims/{claimId}/appointments/proposals | Propose inspection/work windows | Adjuster, Contractor |
POST | /appointments/{appointmentId}/confirm | Confirm appointment | Owner |
POST | /claims/{claimId}/estimates | Submit estimate or revision | Contractor |
POST | /estimates/{estimateId}/review | Approve / reject / request revision | Adjuster |
POST | /estimates/{estimateId}/owner-decision | Owner approve / disagree / comment | Owner |
POST | /claims/{claimId}/invoices | Submit invoice/change order | Contractor |
GET | /claims/{claimId}/payments | Payment and reimbursement history | Owner, Adjuster, Contractor scoped |
POST | /claims/{claimId}/disputes | Open dispute | Owner, Adjuster |
POST | /webhooks/subscriptions | Register outbound events | Internal integrations / partners |
POST | /webhooks/test-delivery | Verify signing/retry path | Internal integrations / partners |
UX direction and implementation roadmap
UX recommendations
Because the only reliably visible FireAndStorm screen is the public portal chooser, the cheapest and safest UX improvement is to extend that existing information architecture rather than invent a disconnected owner experience. Add Property Owner Portal as a peer entry on the chooser, with one sentence that explains it is for claim status, evidence upload, scheduling, estimates, and payments. Also separate read-only demo labeling from real portal labeling so users do not confuse seeded sample content with live claim activity. That recommendation is directly driven by the current chooser page design and its explicit read-only warning.
The owner dashboard should prioritize three things above everything else: status, required next action, and documents. A typical owner is not trying to “manage a workflow engine”; they are trying to answer, What happened? What do you still need from me? When is someone coming? What did you approve? Have I been paid? That aligns with the way regulator and disaster guidance frames post-loss recovery.
Annotated wireframe sketches
The accessible demo did not expose inner workspace pages, so a true annotated screenshot of deeper claim pages was not possible. The sketch below is therefore an annotated wireframe based on the visible portal chooser, followed by a proposed owner dashboard.
Current entry screen with recommended change
+----------------------------------------------------------------------------------+
| FireAndStorm Professional Portal |
| Choose Your Portal |
|----------------------------------------------------------------------------------|
| [ Live Demo Workspace ] [ Property Owner Portal ] [ Contractor Registration ] |
| [ Adjuster Registration ] [ Adjuster Login ] |
|----------------------------------------------------------------------------------|
| Existing demo copy says seeded demo pages are read-only. |
| Add owner copy here: |
| "Track claim status, upload photos/receipts, schedule inspections, |
| review estimates, and monitor payments." |
|----------------------------------------------------------------------------------|
| Demo boundary note should stay only on demo routes, not on production routes. |
+----------------------------------------------------------------------------------+
Annotations
- Add Property Owner Portal as a first-class CTA beside existing roles.
- Keep Live Demo Workspace clearly labeled as sample/read-only.
- If adjuster/contractor onboarding is gated, owner activation should be invite-based from claim assignment.
- Avoid mixing “verification,” “registration,” and “login” language without a companion explanation of what each path is for.
Proposed owner dashboard
+----------------------------------------------------------------------------------+
| Claim CLM-2026-004281 123 Example St Status: Awaiting Owner Approval |
|----------------------------------------------------------------------------------|
| Next action: Review estimate v2 before Jun 10 |
| [Review Estimate] [Upload Receipt] [Message Adjuster] [Confirm Inspection] |
|----------------------------------------------------------------------------------|
| Timeline |
| Reported -> Evidence Uploaded -> Inspection Confirmed -> Estimate Approved -> ...|
|----------------------------------------------------------------------------------|
| Documents (12) Appointments (1) Payments |
| - Roof photos - Tue Jun 11 13:00-15:00 - Deductible: $2,500 |
| - Temporary tarp rec. - Contractor visit - Issued: $0.00 |
| - Appliance serials - Access notes - Pending: Estimate decision |
|----------------------------------------------------------------------------------|
| Messages 3 |
| Adjuster requested one more close-up roof image |
+----------------------------------------------------------------------------------+
Annotations
- Put the one required action near the top, not buried in a work queue.
- Surface documents, appointments, and payments as equal peers.
- Make the timeline human-readable, not just status codes.
- Show deadlines only when they matter and make them accessible.
- On mobile, this becomes a vertical card layout with a fixed “Add Photo” action button.
Prioritized roadmap
| Phase | Scope | Expected effort |
|---|---|---|
| MVP | Add Property Owner role, invite-based activation, claim dashboard, timeline, document/photo upload, secure messaging, inspection scheduling confirmation, estimate read-only preview, basic notifications, WCAG-conscious responsive UI, immutable business audit events | Medium |
| v1 | Owner estimate approval/rejection, dispute workflow, payment/remittance view, delegated access, commercial-property support for multiple buildings/locations, richer document taxonomy, contractor progress photos, stronger reporting and search | High |
| v2 | Passkey-first sign-in, portfolio view for commercial owners, AI-assisted document classification, OCR for receipts/serial numbers, bilingual UX, customer satisfaction and closeout surveys, external carrier/finance integrations, downloadable structured claim packet | High |
A practical delivery sequence is: claims visibility first, collaboration second, approvals third, payments fourth. That order reduces dependency risk and gets the owner portal useful quickly without waiting for full carrier or finance integration. It also maps well to the current demo, which already hints at future payment, carrier submission, and JSON capabilities but does not expose them publicly yet.
Open questions and limitations
The most important limitation is that the accessible FireAndStorm demo did not expose its actual inner claim pages, so deeper inventory findings about dashboard widgets, data fields, and workflow states are necessarily incomplete. Contractor registration, adjuster registration, and adjuster login routes did not provide enough machine-readable content to verify distinct forms or screens. The production site at fireandstorm.com also could not be validated because the fetch failed.
Because of that, several areas remain open: the exact existing claim-state model, whether “Insurance Adjuster” means company adjuster only or includes independent adjusters, whether there is already an internal admin role, whether payment is insurer-direct or contractor-direct, whether carrier submission exists in a hidden environment already, and whether downloadable JSON is planned as an internal admin/export feature or customer-facing artifact. Those items should be resolved before finalizing the owner-portal contract and approval workflow.