tr-arsapayi
English summary. tr-arsapayi allocates arsa payı (the land share attached to
each independent unit of a condominium) under Article 3 of the Turkish Condominium Law
No. 634, which requires shares proportional to each unit's value. It values units with
overridable coefficients (floor, use, facade, view, position, annexes), offers a pure
area-based method for comparison, rounds to any integer denominator with the
largest-remainder method so shares sum exactly, and compares old vs. new shares in
urban-regeneration (Law No. 6306) projects. The rest of this document is in Turkish.
Kat mülkiyeti ve kat irtifakı için arsa payı hesabı.
tr-arsapayi, 634 sayılı Kat Mülkiyeti Kanunu'nun 3. maddesindeki "bağımsız bölümlerin
konum ve büyüklüklerine göre hesaplanan değerleri ile oranlı" arsa payı ilkesini
uygulayan küçük, bağımlılıksız bir Python kütüphanesi ve komut satırı aracıdır.
- Değer esaslı hesap: net alan × kat × nitelik (konut/dükkan/ofis...) × cephe × manzara × konum katsayıları + eklenti (depo, otopark, bahçe, teras...) eşdeğer alanı. Ekspertiz değeri varsa doğrudan o kullanılır.
- Alan esaslı hesap (yalnızca karşılaştırma için) ve iki yöntemin yan yana tablosu.
- Tam sayılı payda: 1000, 2400 gibi sabit payda, EKOK tabanlı kesin payda (
tam) veya hata toleransına göre otomatik payda. Yuvarlama en büyük kalan (Hamilton) yöntemi ile yapılır; paylar paydaya tam olarak eşit toplanır. - Kentsel dönüşüm (6306): eski ve yeni arsa paylarını, malik başına hak edilen ve alınan değeri, yüklenici payını karşılaştırır; m.6'daki "hisseleri oranında salt çoğunluk" kontrolünü yapar.
- Çıktılar: Türkçe başlıklı tablo (terminal), Markdown, CSV (Excel için
;ve ondalık virgül seçeneği).
Önemli: Yerleşik katsayılar örnek (temsili) değerlerdir. 634 sayılı Kanun ya da başka bir mevzuat bir katsayı tablosu belirlemez. Gerçek bir tescil veya dava için katsayıları projeye/ekspertiz raporuna göre değiştirin. Bu araç hukuki görüş değildir.
Kurulum
pip install tr-arsapayi
Python 3.9 veya üstü gerekir; yalnızca standart kütüphane kullanılır.
Hızlı başlangıç (komut satırı)
bina.csv:
bb_no,kat,nitelik,net_alan,cephe,manzara,konum,eklenti,malik
1,Z,dükkan,85,ön,,,depo=12,Malik A
2,Z,dükkan,60,yan,,,,Malik B
3,1,konut,110,ön,kısmi,,,Malik C
4,1,konut,95,arka,,,,Malik D
5,2,konut,110,ön,kısmi,,otopark=12.5,Malik E
6,2,konut,95,arka,,,,Malik F
7,3,konut,110,ön,tam,,otopark=12.5,Malik G
8,3,konut,95,arka,yok,,,Malik H
9,4,konut,180,köşe,tam,çatı dubleks,teras=40,Malik I
tr-arsapayi hesapla bina.csv --payda 1000 --bicim md
| BB No | Kat | Nitelik | Net alan (m²) | Eklenti (m²) | Kat k. | Nitelik k. | Cephe k. | Manzara k. | Konum k. | Ek k. | Eşdeğer alan (m²) | Değer | Oran (%) | Arsa payı |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Zemin | dükkan | 85,00 | depo 12,00 | 1,000 | 1,500 | 1,050 | 1,000 | 1,000 | 1,000 | 136,88 | 136,88 | 12,100 | 121/1000 |
| 2 | Zemin | dükkan | 60,00 | 1,000 | 1,500 | 1,000 | 1,000 | 1,000 | 1,000 | 90,00 | 90,00 | 8,000 | 80/1000 | |
| 3 | 1. Kat | konut | 110,00 | 1,000 | 1,000 | 1,050 | 1,030 | 1,000 | 1,000 | 118,97 | 118,97 | 10,500 | 105/1000 | |
| ... | ||||||||||||||
| 9 | 4. Kat | konut | 180,00 | teras 40,00 | 1,050 | 1,000 | 1,080 | 1,080 | 1,050 | 1,000 | 243,47 | 243,47 | 21,500 | 215/1000 |
| TOPLAM | 940,00 | 1.131,11 | 1.131,11 | 100,000 | 1000/1000 |
Diğer komutlar:
tr-arsapayi hesapla bina.csv --payda tam # EKOK tabanlı kesin payda
tr-arsapayi hesapla bina.csv --payda otomatik # en küçük uygun ortak payda
tr-arsapayi hesapla bina.csv --yontem alan # yalnız net alan
tr-arsapayi hesapla bina.csv --karsilastir # değer esaslı / alan esaslı
tr-arsapayi hesapla bina.csv --bicim csv --excel -o pay.csv
tr-arsapayi katsayilar -o katsayilar.json # örnek katsayı setini dışa aktar
tr-arsapayi hesapla bina.csv --katsayilar katsayilar.json
tr-arsapayi donusum eski.csv yeni.csv --bicim md # kentsel dönüşüm karşılaştırması
CSV sütunları
| Sütun | Zorunlu | Açıklama |
|---|---|---|
bb_no |
evet | Bağımsız bölüm numarası (benzersiz) |
kat |
evet | Z/zemin = 0, B1/bodrum = -1, 3, 3. kat ... |
net_alan |
evet | m²; 12,5 veya 12.5 |
nitelik |
konut (varsayılan), dükkan, ofis, isyeri, depo, otopark |
|
cephe, manzara, konum |
Katsayı tablosundaki anahtarlar; boşsa 1,0 | |
eklenti |
depo=8; otopark=12,5 |
|
malik |
Malik (dönüşüm karşılaştırması ve çoğunluk için) | |
ek_katsayi |
Ek çarpan (varsayılan 1,0) | |
deger |
Ekspertiz değeri; verilirse katsayılar bu bölüm için kullanılmaz |
Sütun adları büyük/küçük harf ve Türkçe karakterden bağımsız eşleştirilir; ayraç
(, ; sekme) otomatik bulunur. Tabloda tanımlı olmayan bir kategori (ör. cephe=güney)
sessizce 1,0 sayılmaz, hata verir.
Hızlı başlangıç (Python)
from tr_arsapayi import Unit, allocate, default_coefficients
units = [
Unit("1", floor=0, net_area=80, use="dukkan", facade="on"),
Unit("2", floor=1, net_area=100, facade="on"),
Unit("3", floor=1, net_area=100, facade="arka"),
Unit("4", floor=2, net_area=100, facade="on", annexes={"depo": 8}),
]
alloc = allocate(units, denominator=1000)
print(alloc.shares()) # {'1': 288, '2': 240, '3': 222, '4': 250}
print(alloc.to_markdown())
# Katsayıları değiştirme (yalnızca farklı olanlar)
k = default_coefficients().updated({"nitelik": {"dukkan": 2.0}, "birim_deger": 40000})
print(allocate(units, k, denominator="tam").denominator)
Elle doğrulama (örnek katsayılarla): BB1 = 80 × 1,00 × 1,50 × 1,05 = 126,00; BB2 = 100 × 1,05 = 105,00; BB3 = 100 × 0,97 = 97,00; BB4 = 100 × 1,02 × 1,05 + 8 × 0,25 = 109,10; toplam 437,10. Kotalar 288,26 / 240,22 / 221,92 / 249,60; tam kısımların toplamı 998, kalan 2 pay en büyük kalanlara (0,92 ve 0,60) verilir → 288, 240, 222, 250.
Kentsel dönüşüm
from fractions import Fraction
from tr_arsapayi import allocate, compare_transformation, majority, read_units_csv
old = allocate(read_units_csv("eski.csv"), denominator=1000)
new = allocate(read_units_csv("yeni.csv"), denominator=1000)
print(compare_transformation(old, new).to_markdown())
print(majority(old, ["Malik A", "Malik C"]).describe())
# Onaylayan hisse oranı %52,00; gereken: > 1/2. Çoğunluk SAĞLANDI.
compare_transformation, yeni yapıda eski maliklere verilen bölümlerin toplam değerini
("maliklere düşen değer") eski arsa payı oranlarına göre paylaştırır:
hak edilen değer = eski oran × maliklere düşen değer. Alınan değer bununla
karşılaştırılır (fark ve alınan/hak edilen oranı). Eski malik listesinde olmayan
(veya Yüklenici/müteahhit etiketli) yeni bölümler yüklenici payı sayılır.
API özeti
| Nesne | Açıklama |
|---|---|
Unit |
Bağımsız bölüm: no, floor, net_area, use, facade, view, position, annexes, owner, extra_factor, value |
CoefficientSet |
Katsayı tabloları; from_json, from_dict(..., base=), updated, to_json, floor_factor, lookup |
default_coefficients() |
Örnek katsayı seti (yeni kopya döner) |
value_unit(unit, k) |
Katsayı dökümü ve değer (UnitValuation) |
allocate(units, k, denominator, method, min_share) |
Arsa payı dağıtımı → Allocation (shares, owner_ratios, max_rounding_error, to_markdown, to_text, to_csv, to_dicts) |
compare_methods, method_comparison_table |
Değer esaslı / alan esaslı karşılaştırma |
suggest_denominator |
Toleransa göre en küçük ortak payda (100, 120, 240, ..., 1000, 2400, ...) |
largest_remainder, exact_denominator |
Tam sayı paylaştırma çekirdeği |
compare_transformation |
Kentsel dönüşüm eski/yeni karşılaştırması → TransformationResult |
majority |
6306 m.6 "hisseleri oranında salt çoğunluk" kontrolü |
read_units_csv, parse_annexes, parse_floor |
Girdi okuma yardımcıları |
Yöntem ve kaynaklar
Hukuki dayanak (metinler mevzuat.gov.tr üzerinden kontrol edilmiştir):
- 634 sayılı Kat Mülkiyeti Kanunu, m.2/d: arsa payı, "arsanın, bu Kanunda yazılı esasa göre bağımsız bölümlere tahsis edilen ortak mülkiyet payları"dır.
- 634 s.K. m.3/2 (14/11/2007 tarihli 5711 s.K. ile değişik): kat mülkiyeti ve kat irtifakı, bağımsız bölümlerin "konum ve büyüklüklerine göre hesaplanan değerleri ile oranlı olarak" tahsis edilen arsa payının gösterilmesi suretiyle kurulur; oranlı değilse her malik düzeltme için mahkemeye başvurabilir; sonradan oluşan değer artış/azalışı arsa payını değiştirmez.
- 634 s.K. m.4: ortak yerler (temeller, merdivenler, asansörler, sığınaklar ...); bunlara ayrı arsa payı verilmez.
- 634 s.K. m.6: eklentiler, ait oldukları bağımsız bölümün bütünleyici parçasıdır. Bu nedenle eklenti alanı (katsayısıyla) bölümün değerine eklenir.
- 6306 sayılı Kanun, m.6/1 (7/11/2023 tarihli 7471 s.K. ile değişik): riskli yapılarda yeniden yapım, kat karşılığı vb. kararlar "yapının paydaşı olup olmadıkları gözetilmeksizin sahip oldukları hisseleri oranında paydaşların salt çoğunluğu ile" alınır (değişiklikten önce "en az üçte iki"). Yıkım sonrası tescil "payları oranında" yapılır.
Hesap:
değer_i = birim_değer × (net_alan_i × k_kat × k_nitelik × k_cephe × k_manzara × k_konum × k_ek
+ Σ eklenti_alanı × k_eklenti)
oran_i = değer_i / Σ değer
pay_i = en büyük kalan yöntemiyle round(oran_i × payda), Σ pay_i = payda
Değerler precision (varsayılan 2) ondalığa yuvarlanıp tam sayıya çevrilir; tüm
paylaştırma tam sayı aritmetiğiyle yapılır. payda="tam" için payda
Σw / ebob(w) (indirgenmiş kesirlerin paydalarının EKOK'u) olur ve yuvarlama yoktur.
min_share (varsayılan 1) hiçbir bölümün sıfır pay almamasını sağlar.
En büyük kalan yöntemi: M. L. Balinski & H. P. Young, Fair Representation, 2. bs., Brookings Institution Press, 2001.
Örnek katsayılar (tr-arsapayi katsayilar ile tamamı görülebilir; hiçbiri mevzuattan
alınmamıştır): kat (1. kat = 1,00; zemin 0,95; 1. bodrum 0,80; üst katlarda 1,02–1,06),
dükkan için ayrı kat tablosu (zemin 1,00, 1. bodrum 0,60), nitelik (konut 1,00; dükkan
1,50; ofis 1,10; işyeri 1,20; depo 0,40; otopark 0,35), cephe (ön 1,05; yan 1,00; arka
0,97; köşe 1,08; iç 0,95), manzara (yok 1,00; kısmi 1,03; tam 1,08; deniz 1,12), konum
(normal 1,00; çatı dubleks 1,05; asansörsüz üst 0,97), eklenti eşdeğer alan katsayıları
(depo/kiler 0,25; kömürlük 0,20; otopark 0,35; garaj 0,40; bahçe 0,15; teras ve çatı
arası 0,30).
Sınırlamalar
- Katsayılar örnektir; piyasa değerini yansıtmaları garanti edilmez. Değer esaslı
hesap için en sağlam girdi, lisanslı değerleme uzmanının bölüm bazlı değerleridir
(
degersütunu). - Bir bağımsız bölümün birden çok paydaşı (hisseli mülkiyet) modellenmez; malik alanına tek bir ad yazılır.
- Kentsel dönüşüm karşılaştırması, eski arsa payını hak ediş ölçüsü olarak kullanır; sözleşmedeki ek bedeller, kira yardımı, KDV vb. hesaba katılmaz.
- Çoğunluk kontrolü yalnızca oran hesabıdır; tebligat, süre ve satış usulleri gibi 6306 s.K. ve yönetmelik hükümleri kapsam dışıdır.
- Bu yazılım hukuki danışmanlık değildir; tapu tescili için proje müellifi, harita mühendisi ve ilgili idare ile çalışın.
Akademik atıf
@software{eminoglu_tr_arsapayi,
author = {Eminoğlu, Yusuf},
title = {tr-arsapayi},
year = {2026},
version = {0.1.0},
url = {https://github.com/YusufEminoglu/tr_arsapayi_sdk}
}
Lisans
MIT Lisansı. Ayrıntılar için LICENSE. İletişim: geospacephilo@gmail.com
Metadata
Release files for tr-arsapayi 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tr_arsapayi-0.1.0.tar.gz | 43.8 kB | With provenance | Details for tr_arsapayi-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tr_arsapayi-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for tr_arsapayi-0.1.0-py3-none-any.whl |
Total release size: 77.3 kB
Release files / tr_arsapayi-0.1.0.tar.gz
| Download URL | tr_arsapayi-0.1.0.tar.gz |
|---|---|
| Size | 43.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5931ddc5b185451a1403d8cb21f3be40453af2b45d26d22f13fa0256cb0961a
|
|
BLAKE2b-256 checksum How to use checksums |
17a138dd0d4f429288de6bff76b3c7dc1601e21e967371a8a6b5d4577c053127
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / tr_arsapayi-0.1.0-py3-none-any.whl
| Download URL | tr_arsapayi-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15ebb500022e3f1d8ca3aeab15651a0e9631086da49004c2a8e139a38537af0a
|
|
BLAKE2b-256 checksum How to use checksums |
421a9151b68dc71c96b7a004b169c3b7595a1ce5d4791dd5cc11358062fcc6dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for tr-arsapayi 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for tr_arsapayi-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.