SelantiaSign inRequest access

For cost segregation firms

Your firm's name on the door. Ours on the plumbing.

Selantia gives your firm its own address. Your clients send you a property there, your staff work through it, and the engagement letter comes out on your own letterhead.

Where to sign in

Sign in on your firm's own address — each firm's sign-in is on its own subdomain. your-firm.selantia.com

your-firm.selantia.com/estimates
ClientPurchase priceStatus
SAMPLE CLIENT A$1,000,000.00completed
SAMPLE CLIENT B$4,000,000.00in review
SAMPLE CLIENT C$7,000,000.00draft

A tenant's estimate queue. Sample data.

Layout placeholder

The blocks beside this line are empty wireframe marks. They are not firms, and this strip says so instead of a heading it has nothing to put under.

What a firm gets

Run cost segregation under your own brand.

01

Your brand, your subdomain

Your firm runs on its own subdomain, with its own logo and its own accent colour. Your landing page and the form your clients fill in both carry them.

02

Intake, through to the letter

What a client submits becomes the estimate your staff work on, and the estimate becomes the letter. Nobody retypes a property between the two, and each letter keeps a copy of what it was computed from.

03

One firm cannot reach another firm's data

Every table that belongs to a firm is keyed to that firm and enforced in the database, not only in the application. The test suite refuses to pass while any path out of the database is unproven.

Features

What the product does.

01

Your own subdomain

Your firm's name, logo and accent colour on the pages your clients use, at an address of your own.

02

An estimate form your clients can use

They fill in the property without an account. You are told it arrived, they are told you have it, and both messages carry your firm's name.

03

Schedules that are computed, not looked up

A letter's depreciation schedule is derived from the property's own figures and your firm's allocation splits, in exact arithmetic rather than floating point.

04

Letters on your own Word template

Upload the letter your firm already sends. Every generated letter uses it, and keeps an unchangeable record of what it was computed from.

05

Download it, or have it sent

Take the file and send it yourself, or have the letter mailed to your client with the document attached. The choice is made letter by letter, not set once.

06

Roles, checked on the server

Owner, admin and member. What each may do is declared once and checked on every request, rather than hidden in the interface.

How it works

From asking to your first estimate.

1

Ask for access

Tell us your firm's name, who you are and how to reach you. The request is recorded for Selantia to read. It does not create an account.

2

We open the firm

Selantia creates your firm, its subdomain and its first account. There is no self-serve path in, by choice.

3

Make it yours

Add your logo and your accent colour, and upload the engagement letter your firm sends.

4

Invite your team

Invite colleagues by email and choose what each of them may do. Your estimate form is already live on your own address, and every submission lands in your queue.

Pricing

Plans

Starter
$99.00each month
5 engagement letters included
$25.00 published price per further letter
download the letter and send it from your own mail
5 seats
Practice
$299.00each month
25 engagement letters included
$20.00 published price per further letter
download the letter, or have it mailed to your client from here
15 seats
Firm
$799.00each month
100 engagement letters included
$15.00 published price per further letter
download the letter, or have it mailed to your client from here
Unlimited seats

A firm that has not opted in to overage billing is refused the next letter by the database when it reaches the cap set on its account, exactly as before — the cap is a hard wall by default and opting in is explicit, per firm (Q28, superseded 2026-09-20). A firm that has opted in has its further letters counted past the cap at the published price above, to be charged once per usage period rather than per letter. Overage is charged once per closed usage period to the card on file. Until live billing is switched on, no card is charged and letters above the cap are not invoiced. Nothing in this product claims a payment was taken that was not.

Questions

Answered plainly.

What do our clients see?
Your firm. Your name, logo and colour on the landing page, the estimate form and the mail sent on your behalf. Two places carry ours: a small credit in the footer of your page, and the technical sending address on email, because a firm's own sending domain is not set up here yet.
Is our data separated from other firms?
Yes, and it is the property this product is built around: a firm's rows are keyed to that firm and enforced in the database, and a test gate fails the build while any path out of it is unproven. It says something about other firms rather than about us, though — the database is ours to run, and what Selantia may do with what is in it belongs in the agreement between your firm and ours.
Can we use our own domain?
Not today. Your firm runs on a subdomain of ours, and bringing your own domain is not built. It is recorded as deferred rather than promised, so it is not something you would be waiting on.
What exactly do we pay for?
Engagement letters. That is the one thing this product meters, and it counts them where they are created, so no way of generating one goes uncounted. Estimates and documents are not metered at all. Each plan also includes a number of people, shown on its card.

Put your firm on its own subdomain.

Tell us about your firm. Selantia opens accounts one at a time, by hand.

Request access

Drawn on the artboards, deliberately not built

Main Declined The board's own pricing table — its two tiers and their quotas (Starter $299 with 100 engagement letters and Professional $799 with 500), 10 and 25 seats, a 14-day free trial, and an Enterprise column
DECLINED, not pending: every part of this table is contradicted by a decision, so there is nothing here for anybody to fill in later. Q18 was answered on 2026-09-15 and the section above publishes three real tiers, so what is declined is worth reading carefully. Two of the board's figures ($299 and $799 a month) coincide with two of the owner's prices and are attached to DIFFERENT tier names and different letter counts: the owner's tiers are Starter at $99 with 5 letters, Practice at $299 with 25, and Firm at $799 with 100. So the board's table is not a subset of the decision, it disagrees with it, and its pairing is invented sample data per design/mockups/README.md. The board's “10 seats” and “25 seats” are declined too, and for a different reason than they were: the owner reversed Q18 on seats on 2026-09-23, and the seats this product sells are Starter 5, Practice 15 and Firm unlimited — printed on the cards above from the same tier data invitations are refused by — so the board's pair disagrees with the decision rather than naming a dimension the product lacks. Storage is still not metered (Q18, 2026-09-20). The Enterprise column is declined because there is no fourth tier and there is no sales conversation to put on it (Q65). The 14-day free trial is declined because Q73 decided on 2026-09-15 that there is NO trial — the same decision as ruling out a free tier, and coherent with Q65, where an access request records a request and creates no firm. A board that draws one is drawing a product decision that was made the other way. tests/design/marketing.test.ts fails a typed seat count, the word trial, an N-day figure and an Enterprise tier anywhere this page can say one.
Main A named firm in the strip below the hero, and the heading that would go over one
The strip is built since 2026-09-22 and the list of firms behind it is empty. The board draws five client-logo placeholders under a line asserting that those firms run on this product, and no firm has ever been onboarded: app.firm is provisioned by Selantia staff (Q65). So the strip draws empty wireframe blocks and calls itself a layout placeholder in its own words, and the heading that names firms lives on a branch src/marketing/proof.ts cannot reach while no firm has consented (Q15, D8). This entry was marked as decided-against until 2026-09-22, when the owner asked for the section: what was decided against is the claim, and the claim is still not made — what arrived is a strip that cannot make it. An entry needs a real firm and that firm's consent to be named, which since 2026-09-22 is recorded in the product by Selantia staff, audited and withdrawable (Q97), and covers the name only. No firm has been onboarded, so none has consented, and the strip is empty.
Main A real firm's estimate queue in the hero frame, and any column in it that states a tax outcome
The frame is built since 2026-09-22 and what it shows is sample data, labelled as that on the page in the board's own words. What is absent is a real one, and it is absent permanently rather than pending: a screenshot of this product shows a real firm's clients, which is the thing the whole repository is built to keep apart (Q20), and Q47 lets a FIRM publish an example of its own work because that is a claim with an author. So the rows carry no client, no city and no firm: the three labels are not names at all, each basis is an exact multiple of a million dollars so that no reader takes one for data, and the statuses are Q17's own five imported from the product rather than written here. Also absent, and this half is a decision: a benefit, savings or deduction column. A basis is a fact about a property that a firm types in; what a study will find is a tax outcome, the bonus mechanic is uncited and eligibility is the firm's judgement (Q41, D8, Q4). This entry was marked as decided-against until 2026-09-22, when the owner asked for the frame, and the argument the previous pass deleted it on was half wrong: a product illustration with clearly-fictional data asserts nothing about who uses the product, which is a different claim from a wall of logos.
Main “Talk to us” and “Contact sales”
Q65 answered the primary call to action and nothing else. These are a sales conversation rather than a recorded request — a different destination and a different promise — and pointing them at the same form would be deciding they are the same thing. The footer's contact and support addresses were supplied by the owner on 2026-10-04 and are linked, and the LinkedIn page and SwiftSeg's website were supplied on 2026-10-05 and are linked too, so they left this entry (Q65). components/tenant/landing.tsx made the same call about “Talk to an engineer”.
Main Anything the request-access form promises about what happens next, and any firm-size field
Q65 asks what a form may promise and the answer is nothing nobody has committed to: “we reply within a day” and “live in days” are service levels nothing measures. ⚠️ The acknowledgement was a bracketed slot until 2026-09-22 and is written now (Q15, answered again on 2026-09-21), and what it says is what happened — the request is recorded, no account was opened, there is nothing further to do. No time, no next step and no promise, and the test suite fails a timing claim anywhere on either page. The board's flow also implies a firm size, which is only useful as a bucket and a bucket is a taxonomy this product does not have — the argument app.property.building_type already makes about a dropdown of property types. A free-text note carries it instead.
Main Final, lawyer-reviewed Privacy, Terms and Cookies pages
Q95: the three pages exist since 2026-10-04 as drafts the owner asked the agent to write from what the code does, and each says on the page that it has not been reviewed by a lawyer. Whether they are sufficient is a lawyer's question. The owner supplied the legal entity, the governing law and the effective date on 2026-10-05, and decided there is no postal address; the courts on 2026-10-06 (Delaware). The liability text is still a marker. Nothing on them claims compliance with anything.
BrandSibling SwiftSeg's lime on the parent badge — --color-swiftseg, which the board reserves for the parent brand
D24 and Q43: Main.dc.html's ramp wins over BrandSibling's, and Main draws the badge in ink on paper. --color-swiftseg also has no row in src/design/accessibility.ts — 8a measured the roles the foundations define and this is not one — so lime text or a lime fill under a label would be an unmeasured pair. Adding one needs a measurement, not a decision to use it.
Mobile Any small-viewport behaviour at all
D7 and Q51: Mobile.dc.html draws the estimates list and the estimate detail, and nothing else. No breakpoint is extrapolated here any more than elsewhere. ⚠️ This is the page in this product most likely to be opened on a phone, which is recorded in 22-marketing.md as a fact rather than as a licence to guess a threshold.