Service charge
Worked out for a Type A two bedroom of 78 m², at about $4.10 per square foot a year. Larger homes pay in proportion to their floor area.
$034% of the total
A daytime concierge in the warehouse lobby, parcels and keys
$020% of the total
Buildings cover for both blocks, arranged by the managing agent
$019% of the total
Set aside each year for the roof, the lifts and the facade
$015% of the total
The courtyard, the birches, the river walk frontage and the bin stores
$012% of the total
Servicing and inspection of the two passenger lifts
Estimated total for a Type A home
$0a year
An estimate prepared by the managing agent for the first year. The actual charge is set annually and shared in proportion to floor area.
Download the full estimateA service charge breakdown for a development: a list of cost lines (concierge, building insurance, reserve fund, grounds, lifts) under one top hairline, in open rows without dividers, each with its yearly figure counting up, its share of the total and a horizontal bar proportional to the largest line that grows from the left in order; beside the list a large total figure counts up with a note on how the charge is set and a download button.
A service charge breakdown for a development: a list of cost lines (concierge, building insurance, reserve fund, grounds, lifts) under one top hairline, in open rows without dividers, each with its yearly figure counting up, its share of the total and a horizontal bar proportional to the largest line that grows from the left in order. Beside the list a large total figure counts up, with a note on how the charge is set and a download button.
Upgrade to Pro
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://beste.dev/r/realestate71?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://beste.dev/r-base/realestate71?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/realestate71.tsx plus the Badge24 eyebrow and Button25 pill components and the shadcn/ui button primitive behind the download button.
The installed file exports realestate71Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Realestate71, realestate71Demo } from "@/components/beste/block/realestate71";
export default function Page() {
return <Realestate71 {...realestate71Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Realestate71 } from "@/components/beste/block/realestate71";
export default function Page() {
return (
<Realestate71
eyebrow="Service charge"
heading="What the yearly charge pays for"
description="Worked out for a Type A two bedroom of 78 m²."
items={[
{ title: "Concierge", description: "A daytime concierge in the warehouse lobby", amount: 1180 },
{ title: "Building insurance", description: "Buildings cover for both blocks", amount: 690 },
{ title: "Grounds", description: "The courtyard, the birches and the river walk frontage", amount: 520 },
]}
currency="USD"
locale="en-US"
labels={{ total: "Estimated total for a Type A home", perYear: "a year", share: "of the total" }}
note="An estimate prepared by the managing agent for the first year."
button={{ label: "Download the full estimate", href: "/documents/service-charge.pdf" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Short line above the heading, drawn with a rule in front of it. |
heading | string | – | Section heading. |
description | string | – | Intro paragraph beside the heading on desktop. |
items | Item[] | [] | Cost lines with their yearly amount, top to bottom. |
currency | string | – | ISO currency code for the figures, USD when omitted. |
locale | string | – | Locale for currency and percent formatting, en-US when omitted. |
labels | Labels | {} | Caption of the total, the unit after it and the words after each share. |
note | string | – | Small print under the total. |
button | { label: string; href: string } | – | Download button under the note. |
className | string | – | Extra classes merged onto the section. |
type Item = {
title: string;
description: string;
amount: number;
};
type Labels = {
total?: string;
perYear?: string;
share?: string;
};Intl.NumberFormat as currency with no decimals.items, not passed in; shares use the locale's percent format with no decimals.prefers-reduced-motion bars render at their full width, figures show their final values and nothing rises.